{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

linux下利用udp协议和socket通信,怎么实现c端可以打开s端文件?

galaxy_robotgalaxy_robot 回答0 收藏1
问题描述:也就是在c/s连接以后,怎么在c端,利用fopen,加上路径名,文件名,就可以显示文件的基本信息,例如格式,地址指针等。并在后续可以有对文件的一些基本操作,比如显示文件内容,逐行阅读等
收藏问题

2条回答

SimonMa

SimonMa

回答于2022-06-28 11:50

谢谢邀约!很多年没有写过代码了!

如果在Linux下Socket如何传输一个目录以及目录下的子文件子目录NE ?先来看看Socket通信模型。

最简单的方法:借助tar工具和管道。

tar知道吗?可以把一整个文件夹打包成一个文件的工具,也可以还原不仅可以打包成一整个文件,还能打包成数据流。用它打包成数据流的模式。

配合popen调用

FILE* tarData = popen("tar -c /home/sorayuki/pics", "rb"); //读取数据

for(;;) {

char buffer[1024];

int r = fread(buffer, 1, 1024, tarData);

if (r <= 0) break;

//把buffer中前r个字节通过套接字发过去

}

pclose(tarData);

接收端类似,

FILE* tarData = popen("tar -x -C /home/sorayuki2", "wb");

for(;;) {

char buffer[1024];

//这里收数据存入buffer

//如果收完了(recv返回0)就break

fwrite(buffer, 1, 收到数据的长度, tarData);

}

pclose(tarData);

代码只是设想,没有测试。因为popen有些朋友弄不清楚,所以用tar的。

希望能够帮助到你的!

希望能够帮助大家!可以关注我的头条号,随时留言、交流!

关注我的微信公众号:IT微技能加油站(点击微信添加朋友——公众号——IT微技能加油站),定期分享你想要的职场生存技能及自媒体相关知识!

也欢迎关注:睡前读书十分钟(点击微信添加朋友——公众号——睡前读书十分钟),定期分享如何把控心态及工作生方式的文章;及时了解世界、读懂人生!

评论0 赞同0
  •  加载中...
learn_shifeng

learn_shifeng

回答于2022-06-28 11:50

c端打不开s端的文件,你就没有理解网络通信和文件操作的区别

你要实现这种效果,要么c端发命令s端本地操作,要么c端拿到文件副本,编辑后同步到s端

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<