send 应该设置多大的缓冲区

cyberkit 2007-12-23 08:24:31
send 不能保证把缓冲区的数据全部发送出去,也就是说,需要在调用完毕之后比较实际发送字节数与缓冲区的大小,如果实际发送字节数小于预期要发送的数据大小,则需要将余下的继续发送。
这样很麻烦,但是当缓冲区的大小比较小时(我将它设置为8k),这样send一次就完全的将8k发送出去,是不是我们可以肯定当缓冲区小于8k的情况一下,我们无需再判断实际发送字节而认为数据被全部发送出去了?
...全文
277 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
僵哥 2007-12-24
  • 打赏
  • 举报
回复
如果不是异步I/O呢?
================
如果不是异步也同样需要判断返回值。至少是否出错,仍然需要通过返回值进行判断。
cyberkit 2007-12-24
  • 打赏
  • 举报
回复
TO:unsigned

如果不是异步I/O呢?
cyberkit 2007-12-24
  • 打赏
  • 举报
回复
哦...那网上很多的代码都是不及格的。
僵哥 2007-12-24
  • 打赏
  • 举报
回复
在异步I/O当中send就算是只发送一个字节也需要判断返回值,也就是可能需要重试。
tcxjia 2007-12-24
  • 打赏
  • 举报
回复
肯定不是一定,还是要根据返回值来看
cyberkit 2007-12-23
  • 打赏
  • 举报
回复
回楼上的兄弟:那是不是就算只发送2个字节,都得把send放在一个循环当中?
WQ 2007-12-23
  • 打赏
  • 举报
回复
应该不行,按我理解无论缓冲区多少都会有这种情况出现

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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