问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

如何获取SOCKET 发送缓冲区使用大小

发布网友 发布时间:2022-04-22 08:27

我来回答

1个回答

热心网友 时间:2022-06-18 15:16

解决思路:发送数据存在缓冲区中,我们判断发送缓冲区大小变化,即可获知发送是否成功;具体方法如下:发送数据后,获得已使用缓冲区大小buf,如果buf==0,表示成功,否则,表示未发送;
那么,如何来获得当前已占用发送缓冲区大小?
1. 第一步我们自然想到是否存在这样的sockopt接口

getsockopt(clientSocket, SOL_SOCKET, SO_SNDBUF, (void*)&sendbuflen, &len);
getsockopt中,有参数SO_SNDBUF,貌似是用来获得发送缓冲大小的;
但经过试验,我们发现 无论数据是否发送成功,该值一直不变;
查看内核代码,发现 该参数的含义是 总共的发送缓冲区,包括 已占用 和 空闲的;

2. 第二步,我们发现/proc/net/tcp 中tx_queue大小,即已占用发送缓冲区大小

/proc/net/tcp 中tx_queue 的计算:“tp->write_seq - tp->snd_una”,根据该计算方法,在内核源码中查找,发现内核导出了2个获得已使用发送缓冲的编程接口;
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
电脑今天玩游戏突然风扇转的很快.鲁大师显示cpu86度平均79度然后从开... SL400P9C开机后一直窝吱吱的声音是怎么回事?电流声就正常吗?国产货还能... 手机号给别人补号了后通话提示什么? 养小金鱼吃什么食物 给小金鱼吃什么 家里小金鱼吃什么食物 大拇指筋断了后遗症 ...第一次剪去它的五分之二,第二次剪去它的三分之一,这块步还剩几分之... 一根一米长的小棒第一次截去它的三分之一第二次截去剩下的三分之一第... ...第一次用去全长的三分之一,第二次用去五分之六米,还剩全长的50%,这... 振动强度是什么 平安普惠的邀请码是什么?怎么注册还要填写 怎么才... 怎么获取socket的协议类型 高频振动和低频振动代表意义 什么是matlab中的梯度增强算子 linux操作系统为什么我修改完ip地址远程连接不上了? 简谐振动的定义是什么? 国足在国际足联的排名情况如何? Matlab 图像自适应增强 中,自适应的机制是什么,... 参激振动的定义是什么? 游戏场景原画 培训班 都有哪些培训机构 帮帮忙 如何获得Socket连接客户端的IP地址 matlab图像增强 不小心你改了Linux系统的IP地址,不能上网了,怎么... 机械振动到底是什么啊 matlab图像边缘检测 背景变全黑 socket 客户端 如何得到服务器的socket 国内哪家游戏培训机构最好? MATLAB中怎样让一个图像的边缘变平滑 什么是机械振动?求详细! 我的手机注册QQ时,只能用好友申请注册。我想要的... 求用Matlab进行边缘检测 简谐振动的定义是什么? linux 修改IP地址后putty连接不上了求解 如何通过Socket获得所有客户端连接的IP地址 简谐运动的定义是什么?行测知识 用诺基亚 手机的imet码注 册手机软件是怎么回事 如何用matlab实现对边缘检测后的图像的边缘细化和... 简谐运动的定义是什么? 所有的振动都是简谐... Socket如何获得接入客户端的真正IP和端口 转子系统振动定义是什么 比利时男足为什么积分能排第一怎么算的 能帮我算个注册码吗? nokia 5800 xm LCG Jukebox2... 足球联赛中的积分规则一般是:胜一场,得3分;平一... 花 山你白速他师救到果僧去现码注意精戒年密信来父... linux修改IP的问题 java 如何从收到的socket中取得IP? matlab编程,如何在图像边缘加入噪声 中国国家男足唯一一次闯进世界杯是在哪一年的 星驿付聚合码注消了能恢复吗
  • 焦点

最新推荐

猜你喜欢

热门推荐