Linux下怎么用read或recv函数完全接收socket发来的数据?
int recv(int sockfd, void* buffer, int len, unsigned int flags)
对方发来的数据是一包一包来的,就是说对方发送一个完整的信息时,多次调用send()函数,我怎么才能全部接收这些send()发来的数据呢?
问题点数:20、回复次数:3Top
1 楼OverIsOver(花不飘零水不流(ˉωˉ)纵使要梦说穿,缘了就是完^ō^刪去絲絲斷綫 盼望可將結果扭轉◆晕就一个字哈◇)回复于 2006-03-10 18:17:22 得分 2
tcp还是udp呢?udp的话要判断是否丢包了
每次收包的时候,把收到的数据放到另一个临时缓冲区里Top
2 楼lanying(蓝鹰)(问个不休)回复于 2006-03-10 19:07:16 得分 18
TCP是面向流的协议,没有边界的,需要你自己定义。
例如可以在报头加个长度字段,或者在报文的末尾添加结束符Top
3 楼lanying(蓝鹰)(问个不休)回复于 2006-03-10 19:08:22 得分 0
接收的时候根据报文长度之类的信息,不断调用recv,直到接收完毕为止Top




