当前位置: 技术问答>linux和unix
socket编程:recv(...)函数问题求救
来源: 互联网 发布时间:2015-01-17
本文导语: 这个问题折磨我两天了,从去年到今年,sigh ...
这个问题折磨我两天了,从去年到今年,sigh
问题是这样的:
使用阻塞的socket 流式 TCP 服务,
(recv是阻塞调用的)
用recv(sockfd, buffer, length, 0)从网络接收数据到缓冲区buffer, 如果应该接收173个字节大小的数据,但是实际上只收到145个字节,为什么会这样?
请问怎样接收那28个没有收到的数据,不要重传的说
我试过再次调用recv()接收剩下的28个字节,但是程序就堵塞在recv()了,再也执行不下去了
头都大了,sigh
问题是这样的:
使用阻塞的socket 流式 TCP 服务,
(recv是阻塞调用的)
用recv(sockfd, buffer, length, 0)从网络接收数据到缓冲区buffer, 如果应该接收173个字节大小的数据,但是实际上只收到145个字节,为什么会这样?
请问怎样接收那28个没有收到的数据,不要重传的说
我试过再次调用recv()接收剩下的28个字节,但是程序就堵塞在recv()了,再也执行不下去了
头都大了,sigh
|
用tcpdump看看对方是否只给你发了145个字节,若是,叫对端关闭Nagle算法试试.(setsockopt(...))