在C中查询最大套接字发送缓冲区大小?【JAVA教程】

!
也想出现在这里? 联系我们
信息

在C中查询最大套接字发送缓冲区大小?,第1张

概述在C中查询最大套接字发送缓冲区大小

我知道我可以cat / proc / sys / net / core / wmem_max在SOCKET上获得SO_SNDBUF的最大大小,但是有没有一种简单的方法可以在C中查询这个值,而不需要通过打开文件的感觉,阅读,并转换为一个整数?

windows 7上的多播套接字

如何获得UDP套接字的排队数据量?

错误:无效的http_HOST标头:\’/webapps/../gunicorn.sock\’

在windows环境中与C / C ++联网

什么原因以及如何避免,和

为了得到net.ipv4.tcp_wmem sysctl的值,你需要从表示该sysctl的/ proc文件中解析出来(在linux上真的没有更好的方法,并且sysctl系统调用早已被弃用)。

就像是:

unsigned long wmem_min,wmem_default,wmem_max; file *f = fopen(\”/proc/sys/net/ipv4/tcp_wmem\”,\”r\”); if(f == NulL) fail(); if(fscanf(f,\”%lu %lu %lu\”,&wmem_min,&wmem_default,&wmem_max) != 3) fail(); fclose(f); … use wmem_max

对于一个特定的套接字,你可以得到当前剩余的缓冲区

socklen_t optlen; int send_buf,rc; optlen = sizeof(send_buf); //if getsockopt is successful,send_buf will hold the buffer size rc = getsockopt(sockfd,Sol_SOCKET,SO_SNDBUF,&send_buf,&optlen);

难道你不能在shell上调用sysctl命令(使用system()或popen / pclose() )来获取这些信息…至少避免打开一个文件,但总体上可能是等价的:

system(\”sysctl -n net.ipv4.tcp_wmem\”);

总结

以上是内存溢出为你收集整理的在C中查询最大套接字发送缓冲区大小?全部内容,希望文章能够帮你解决在C中查询最大套接字发送缓冲区大小?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞62 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容