{eval=Array;=+count(Array);}
謝謝邀約!很多年沒有寫過代碼了!
如果在Linux下Socket如何傳輸一個(gè)目錄以及目錄下的子文件子目錄NE ?先來看看Socket通信模型。
tar知道嗎?可以把一整個(gè)文件夾打包成一個(gè)文件的工具,也可以還原不僅可以打包成一整個(gè)文件,還能打包成數(shù)據(jù)流。用它打包成數(shù)據(jù)流的模式。
配合popen調(diào)用
FILE* tarData = popen("tar -c /home/sorayuki/pics", "rb"); //讀取數(shù)據(jù)
for(;;) {
char buffer[1024];
int r = fread(buffer, 1, 1024, tarData);
if (r <= 0) break;
//把buffer中前r個(gè)字節(jié)通過套接字發(fā)過去
}
pclose(tarData);
接收端類似,
FILE* tarData = popen("tar -x -C /home/sorayuki2", "wb");
for(;;) {
char buffer[1024];
//這里收數(shù)據(jù)存入buffer
//如果收完了(recv返回0)就break
fwrite(buffer, 1, 收到數(shù)據(jù)的長度, tarData);
}
pclose(tarData);
代碼只是設(shè)想,沒有測試。因?yàn)閜open有些朋友弄不清楚,所以用tar的。
希望能夠幫助到你的!
希望能夠幫助大家!可以關(guān)注我的頭條號,隨時(shí)留言、交流!
關(guān)注我的微信公眾號:IT微技能加油站(點(diǎn)擊微信添加朋友——公眾號——IT微技能加油站),定期分享你想要的職場生存技能及自媒體相關(guān)知識(shí)!
也歡迎關(guān)注:睡前讀書十分鐘(點(diǎn)擊微信添加朋友——公眾號——睡前讀書十分鐘),定期分享如何把控心態(tài)及工作生方式的文章;及時(shí)了解世界、讀懂人生!
c端打不開s端的文件,你就沒有理解網(wǎng)絡(luò)通信和文件操作的區(qū)別
你要實(shí)現(xiàn)這種效果,要么c端發(fā)命令s端本地操作,要么c端拿到文件副本,編輯后同步到s端
0
回答10
回答10
回答0
回答3
回答0
回答10
回答0
回答0
回答0
回答