Linux下怎么用read或recv函数完全接收socket发来的数据?

tiger波波 2006-03-10 05:38:57
int recv(int sockfd, void* buffer, int len, unsigned int flags)

对方发来的数据是一包一包来的,就是说对方发送一个完整的信息时,多次调用send()函数,我怎么才能全部接收这些send()发来的数据呢?
...全文
975 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanying 2006-03-10
  • 打赏
  • 举报
回复
接收的时候根据报文长度之类的信息,不断调用recv,直到接收完毕为止
lanying 2006-03-10
  • 打赏
  • 举报
回复
TCP是面向流的协议,没有边界的,需要你自己定义。
例如可以在报头加个长度字段,或者在报文的末尾添加结束符
OverIsOver 2006-03-10
  • 打赏
  • 举报
回复
tcp还是udp呢?udp的话要判断是否丢包了
每次收包的时候,把收到的数据放到另一个临时缓冲区里

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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