社区
网络编程
帖子详情
recv一次最大可以收多少字符?
magicist
2003-06-12 11:48:18
recv(cli_sock, szBuf, sizeof(szBuf), 0);
我如何定义szBuf(假定字符串)的长度?
如果定义的szBuf长度超过了SOCKET一次传输的字符会发生什么?
如果szBuf的长度小于SOCKET一次传过来的字符会怎么样?
...全文
1871
19
打赏
收藏
recv一次最大可以收多少字符?
recv(cli_sock, szBuf, sizeof(szBuf), 0); 我如何定义szBuf(假定字符串)的长度? 如果定义的szBuf长度超过了SOCKET一次传输的字符会发生什么? 如果szBuf的长度小于SOCKET一次传过来的字符会怎么样?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
风龙-3
2003-06-14
打赏
举报
回复
你可以使用setsockopt进行设置SO_RCVBUF的大小,但TCP具体编程中,该缓冲区没有什么大的含义,你可以定义一个小的缓冲区.TCP的缓冲区如果有数据,就会按你给的长度,拷贝数据到
你自定义的缓冲区,如果TCP中没有这么多数据,拷贝它现有的数据.如果TCP中没有数据,而且你用的是阻塞的SOCKET,应用将会在RECV函数时等待,直到有数据或者出错。
felics
2003-06-14
打赏
举报
回复
最大64KBYTE。
不过最好不要用这么大,大了的话如果丢包就要重发64K,建议用1。4K左右的包,这样兼容性也好一点
bb123456789
2003-06-14
打赏
举报
回复
默认的好象是0.5 到8K
XiaoYuBBS
2003-06-14
打赏
举报
回复
To:shilong
"64K也许就是65536",这个是指Byte还是Bit?
Thanks in advance.
Symlith
2003-06-14
打赏
举报
回复
gz
ISAKEEPER
2003-06-14
打赏
举报
回复
up
shilong
2003-06-13
打赏
举报
回复
非阻塞式的立即返回,而且阻塞式的就不一定了。。。
对于楼主的问题好象在哪篇见过,64K也许就是65536
bbildb
2003-06-13
打赏
举报
回复
65535ip包的最大值
是对的
baojian88888
2003-06-13
打赏
举报
回复
alphapaopao(炮炮)
也就是说,你的buf很大,也没关系,recv绘制一等到全部填满,才会返回
不同意。
recv 一般会立即返回,除非缓冲区一个字节也没有
并不是等到填满才返回
lashengcrh
2003-06-12
打赏
举报
回复
应该有限度吧!数据包太大会发送失败。
孤必有邻
2003-06-12
打赏
举报
回复
szBuf的长度类型是UINT,结合应用考虑,等于是没有长度上的限制。
(通常根据需要和硬件资源,设定在几K以内)
recv函数在未收到指定字节数时阻塞,直到收够指定字节数或超时或对方关闭SOCKET;
如果指定接收数目小于传过来的数目,则剩余字节在系统的SOCKET缓冲区中(当系统缓冲区满时,对方发送线程自动阻塞,停止发送),可以再次调用recv读取,(如果SOCKET关闭,则未接收数据丢失)。
bauhaus
2003-06-12
打赏
举报
回复
65535ip包的最大值
test7979
2003-06-12
打赏
举报
回复
你可以看一下 getsockopt 里面 SO_RCVBUF 的值,
每个SOCKET实现一般都有一个默认的值,你应当可以改
test7979
2003-06-12
打赏
举报
回复
其实这是和每个socket的具体实现有关DI..............
alphapaopao
2003-06-12
打赏
举报
回复
sock传输的数据包大小不会因想到你的recv的缓冲区大小,也就是说,你的buf很大,也没关系,recv绘制一等到全部填满,才会返回,他会填写好多个数据包。
============================================================================
提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
http://alphasun.betajin.com/ 遇到问题可以给我发消息,给我发信息时请附带原帖地址
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
magicist
2003-06-12
打赏
举报
回复
那SOCKET的缓存大小应该有限制把?
如果传输的数据超过了SOCKET的缓存限制,是否应该循环接受SOCKET数据?
wuchuncai
2003-06-12
打赏
举报
回复
最大8k,数据太多,分段发送
曾经的猎狐
2003-06-12
打赏
举报
回复
10k吧
happyhuang
2003-06-12
打赏
举报
回复
recv是tcp用的,数据量多大都没问题
recvfrom是udp用的,数据包超过max_size后面的部分会被截掉
Socket
一次
Recv
接受的字节有限制么?
答案是:有。大约 5-15KB ,默认 具体 和什么有关系我也不知道。反正我测试的是:16371字节。win7 x64。 可以使用setSockOpt来设置
recv
buf or sndbuf 的大小,但是 我的建议还是控制 每次接受的字节数 控制在一定范围 比如 5KB。因为即使设置了,还是可能会接受到 较小的字节数。 关于 Socket的用法 更重要的就是 如何对数据 进行处理了。
msg = conn.
recv
(BUFSIZE)
一次
程序能接
收
的
最大
数据
msg = conn.
recv
(BUFSIZE) #接受消息的内容 ----------------------- <socket._socketobject object at 0x7fdd08d8cad0> ('192.168.137.1', 57504) 接到来自192.168.137.1的链接 ----------------------- 12345678...
Python
recv
函数如何完整接
收
数据?
在Python中,我们使用socket库来实现网络编程,其中
recv
()函数用于接
收
数据。但是在实际应用中,使用
recv
()函数有可能无法完整接
收
数据,这可能会导致接
收
到的数据出现错误或不完整。本文将介绍如何使用Python的
recv
()函数来完整接
收
数据。
recv
函数接
收
数据问题(诡异)--调试正确,全速出错
今天,测试代码时,发现使用
recv
函数接
收
数据时,当全速运行时,出现接
收
数据不全问题,当调试运行的时候,一切正常。调整接
收
数据缓冲大小,发现太小时,重复接
收
过程会出现数据交叉问题。 一切都显的那么诡异,问题肯定是出在
recv
函数,没错!通过查找接
收
数据正常部分大小,大概在1256左右,莫非说底层的缓冲区大小在这个范围左右。而且每次当调试到
recv
函数后面设置断点时,完全没有错误
tcp通讯
一次
最多能发送多少数据?_关于 TCP/IP,必须知道的十大问题!!
一、TCP/IP模型TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。TCP/IP协议族按照层次由上到下,层层包装。最上面...
网络编程
18,357
社区成员
64,164
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章