关于TCP发送和接收缓存区的问题

版主大哥 2012-07-30 03:12:58
1.在服务器端setsockopt设置接收缓存区大小为4,然后在客户端发送6个字节的数据,服务端接收int iRcvLen = recv(...);
iRcvLen 怎么是等于6? 为什么不是分两次接收?第一次是4,然后再收一次2?

2.客户端设置缓存区也为4,然后发送 char buff[6] = "00000";int iSndLen = send(socket,buff,6,0);
怎么也是如此?

...全文
402 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuexingyang 2012-07-30
  • 打赏
  • 举报
回复
赵老师是亮点,看他的帖子都要转几个弯才能理解。
还喜欢带个链接。
版主大哥 2012-07-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

getsockopt看看缓冲区的实际大小就知道了,肯定不是4。
[/Quote]

这么确定?




继续坐等。。。。
vilnies 2012-07-30
  • 打赏
  • 举报
回复
getsockopt看看缓冲区的实际大小就知道了,肯定不是4。
qq120848369 2012-07-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

不知道有多少前人掉在TCP Socket
send(人多)send(病少)send(财富)
recv(人多病)recv(少财富)
陷阱里面啊!
http://topic.csdn.net/u/20120210/09/51109ed0-07b9-41f2-b487-a51597f2ca01.html
[/Quote]

++
赵4老师 2012-07-30
  • 打赏
  • 举报
回复
不知道有多少前人掉在TCP Socket
send(人多)send(病少)send(财富)
recv(人多病)recv(少财富)
陷阱里面啊!
http://topic.csdn.net/u/20120210/09/51109ed0-07b9-41f2-b487-a51597f2ca01.html

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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