社区
网络编程
帖子详情
如何知道socket发送缓冲区的内容和大小?
weixin_44690344
2019-04-26 04:26:17
mfc,c++,vs2015,使用socket,tcp网络编程,发送端sendX个数据,把接收端的缓冲区大小设置为Y,(X大于Y),发送端执行send函数后,接收端不执行recv,那么请问如何知道发送方缓冲区还有哪些数据没有发送?以及这些数据的大小?发送方能不能自己调用哪个函数来实现上述疑问,而不需要接收方来告诉他已经收到了什么,他自己再去减!请大神帮忙,谢谢!
...全文
1378
5
打赏
收藏
如何知道socket发送缓冲区的内容和大小?
mfc,c++,vs2015,使用socket,tcp网络编程,发送端sendX个数据,把接收端的缓冲区大小设置为Y,(X大于Y),发送端执行send函数后,接收端不执行recv,那么请问如何知道发送方缓冲区还有哪些数据没有发送?以及这些数据的大小?发送方能不能自己调用哪个函数来实现上述疑问,而不需要接收方来告诉他已经收到了什么,他自己再去减!请大神帮忙,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
待续_1006
2019-06-03
打赏
举报
回复
这是TCP/IP的基础常识了,建议先看下基本概念,一点一点来!tcp/ip详解
Yofoo
2019-05-31
打赏
举报
回复
1
send的返回值会告诉你实际进入协议(发送)的大小, 通讯双方都会缓冲, 如从A 发到B A 有发送缓冲 假设为 2 B 有接收缓冲,假设为 4 在A 使用send 来发送10个, 如果B不recv, 那么情况一般就是 send返回 6, 有4个已经发送到B的缓冲, 有2个在本地缓冲
Eleven
2019-05-28
打赏
举报
回复
这个需要你自己上层定一个协议,告诉数据的大小,然后再按这个大小来接收后续的数据~
PDD123
2019-05-24
打赏
举报
回复
肯定是有其他问题,否则你要send,就会recv tcp协议,能保证你接收到的数据的顺序和你发送的顺序一致(不考虑丢包)。 但是,不保证每一次recv都能接收到完整的一个数据包,也不能保证每一次recv都只接收到一个数据包。 在实际发送过程中,会对你发送的包进行拆分或者合并。 所以你必须使用一个应用层协议来读取数据,可以用已有的通用协议,也可以自定义。 顺便说一句,以后如果开发大型项目,还得考虑有人捣乱,发送异常数据的情况。
zgl7903
2019-04-27
打赏
举报
回复
按 帧头+长度+数据+校验+帧尾的方式 定个传输协议, 发送和接收都按协议就很容易做到
Socket
发送缓冲区
接收缓冲区快问快答
首先,我们要明确一下,通过
socket
发送数据之后(调用发送方法),数据并不是会直接发送到接收方。整个过程简略图如下:最终数据发送是要通过网卡的,但是
socket
没法直接将数据发送到网卡,所以只能先将数据发送到操作系统数据
发送缓冲区
。然后网卡从数据
发送缓冲区
中获取数据,再发送到接收方。
socket
接收数据,也不是直接从对端获取的。整个过程简略图如下:首先接收方机器网卡接收到发送方的数据后,先将数据保存到操作系统接收缓冲区。...
socket
中send和rev函数详解,
<div id="post_detail">
Socket
send函数和recv函数详解 int send(
SOCKET
s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客...
socket
读写缓冲区.
关于
socket
的
发送缓冲区
网上有诸多的讨论,这里个人小结一下,希望对以后有些帮助。首先,看下面一段代码, //设定
socket
参数 #define dfUdpRcvCacheSize 2561024 //256//接收缓冲区
大小
(字节) int optval,optlen = sizeof(int); optval=dfUdpRcvCacheSize; //设置读缓冲区 err=setsockopt(iSock,SOL_
SOCKET
,SO_RCVBUF,(char)&optval,optlen)
socket
阻塞和非阻塞有哪些影响
socket
阻塞和非阻塞有哪些不同
一个 TCP
发送缓冲区
问题的解析
在实验环境中,Phase1阶段创建的sk_buff,其skb->len=1024,skb->truesize=4372(4096+256,这个值的详细来源请看sk_stream_alloc_skb)这样看上去,这个sk_buff也容纳不下14480啊。再继续看内核的实现,再skb_copy_to_page_nocache()拷贝之前,会进行sk_wmem_schedule()...
网络编程
18,356
社区成员
64,164
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章