社区
网络编程
帖子详情
send 应该设置多大的缓冲区
cyberkit
2007-12-23 08:24:31
send 不能保证把缓冲区的数据全部发送出去,也就是说,需要在调用完毕之后比较实际发送字节数与缓冲区的大小,如果实际发送字节数小于预期要发送的数据大小,则需要将余下的继续发送。
这样很麻烦,但是当缓冲区的大小比较小时(我将它设置为8k),这样send一次就完全的将8k发送出去,是不是我们可以肯定当缓冲区小于8k的情况一下,我们无需再判断实际发送字节而认为数据被全部发送出去了?
...全文
277
7
打赏
收藏
send 应该设置多大的缓冲区
send 不能保证把缓冲区的数据全部发送出去,也就是说,需要在调用完毕之后比较实际发送字节数与缓冲区的大小,如果实际发送字节数小于预期要发送的数据大小,则需要将余下的继续发送。 这样很麻烦,但是当缓冲区的大小比较小时(我将它设置为8k),这样send一次就完全的将8k发送出去,是不是我们可以肯定当缓冲区小于8k的情况一下,我们无需再判断实际发送字节而认为数据被全部发送出去了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
应该不行,按我理解无论缓冲区多少都会有这种情况出现
socket的
send
(),recv()以及
缓冲区
之间的关系
来自: socket编程
缓冲区
大小对
send
()的影响_wangst4321的专栏-CSDN博客 TCP/UDP的接收
缓冲区
和发送
缓冲区
_Swallow_he的博客-CSDN博客 socket之
send
与发送
缓冲区
大小的关系_水果刀的专栏-CSDN博客 文章目录接收
缓冲区
发送
缓冲区
tcp、udp接收
缓冲区
的不同对于TCP对于udp
缓冲区
大小对
send
()的影响
send
函数在发送的数据长度大于发送
缓冲区
大小,或者大于发送
缓冲区
剩余大小时,socket会怎么反应 每个TCP socket在内核中都有一个发送缓冲
tcp协议系列文章(7):
send
()的数据大小与可用的发送
缓冲区
大小的关系
socket之
send
与发送
缓冲区
大小的关系
socket编程
缓冲区
大小对
send
()的影响
1. 概述 Socket编程中,使用
send
()传送数据时,返回结果受到以下几个因素的影响: • Blocking模式或non-blocking模式 • 发送
缓冲区
的大小 • 接收窗口大小 本文档介绍通过实验的方式,得出(收发)
缓冲区
大小对
send
结果的影响。实验使用C语言。 2 数据发送和接收的过程 如下图所示,程序调用
send
()发送数据时,数据将首先进入发送
缓冲区
,等待发送。系
linux socket
send
函数和recv函数详解以及修改
缓冲区
大小
一、
send
/recv详解 1.
send
函数 int
send
( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用
send
函数来向TCP连接的另一端发送数据。客户程序一般用
send
函数向服务器发送请求,而服务器则通常用
send
函数来向客户程序发送应答。 该函数的第一个参数指定发送端套接字描述符; 第二个参数指明一个存放应用程序要发送数据的
缓冲区
; 第三个参数指明实际要发送的数据的字节数; 第四个参数一般置0。
设置
Socket
缓冲区
的大小
在32位的操作系统下,如果我没有记错的话:socket
缓冲区
默认大小是8192B,但是有些时候我们在传输大文件的时候或者几十G的文件的时候我们想。MessageBox("获取服务端
设置
SOCKET发送
缓冲区
大小失败");//
设置
系统发送数据为默认的倍数。MessageBox("
设置
SOCKET发送
缓冲区
大小失败");这里我也是摘抄一个网友的博客,进行了修改。
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章