recv()函数是怎么知道文件已经接收完毕?

zhangwuji156 2008-11-21 06:48:21
我只有一个办法,就是在发送端send的时候,就说明这个文件的大小,然后在recv端先知道要接收多少,我有两本书,书上的例子全是定义好的大小,一个是100字节,一个是260字节,不允许超过,我估计超过就挺复杂的,所以没写。而头儿说,套接字已经很成熟了,肯定有好办法。还给我两个例子看,虽然写是C++的,但全是VC的,VC我也能看懂呀,可他用的是CSocket类做的,用的是人家封装好的OnReceive函数,而且一个例子是错的,接收文件始终只有几字节。另一个例子根本就编译不通过,它包含一个TcpSever.h头文件根本就不存在。
...全文
176 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanreid 2008-11-21
  • 打赏
  • 举报
回复
通过socket自己处理文件传输,发送端可以读取文件后,将文件拆分成多个包,然后分包发送,接收端进行组装。
由于接收端需要知道每个包的大小和包的数量,就需要你定义这种包的包头。两端解析。如果考虑的更全面,可以增加接收端的确认和重发消息处理。
hnzlk 2008-11-21
  • 打赏
  • 举报
回复
你不是有办法吗?
做一个结构,先把发送的文件的信息传过去,再发送文件体。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧