关于TCP发送和接收缓存区的有关问题
关于TCP发送和接收缓存区的问题
1.在服务器端setsockopt设置接收缓存区大小为4,然后在客户端发送6个字节的数据,服务端接收int iRcvLen = recv(...);
iRcvLen 怎么是等于6? 为什么不是分两次接收?第一次是4,然后再收一次2?
2.客户端设置缓存区也为4,然后发送 char buff[6] = "00000";int iSndLen = send(socket,buff,6,0);
怎么也是如此?
------解决方案--------------------
不知道有多少前人掉在TCP Socket
send(人多)send(病少)send(财富)
recv(人多病)recv(少财富)
陷阱里面啊!
http://topic.****.net/u/20120210/09/51109ed0-07b9-41f2-b487-a51597f2ca01.html
------解决方案--------------------
------解决方案--------------------
getsockopt看看缓冲区的实际大小就知道了,肯定不是4。
1.在服务器端setsockopt设置接收缓存区大小为4,然后在客户端发送6个字节的数据,服务端接收int iRcvLen = recv(...);
iRcvLen 怎么是等于6? 为什么不是分两次接收?第一次是4,然后再收一次2?
2.客户端设置缓存区也为4,然后发送 char buff[6] = "00000";int iSndLen = send(socket,buff,6,0);
怎么也是如此?
------解决方案--------------------
不知道有多少前人掉在TCP Socket
send(人多)send(病少)send(财富)
recv(人多病)recv(少财富)
陷阱里面啊!
http://topic.****.net/u/20120210/09/51109ed0-07b9-41f2-b487-a51597f2ca01.html
------解决方案--------------------
------解决方案--------------------
getsockopt看看缓冲区的实际大小就知道了,肯定不是4。