Linux Socket Programming by Example-第十二章 设置socket参数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux Socket Programming by Example-第十二章 设置socket参数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1204字,纯文字阅读大概需要2分钟。
内容图文
这一章的难点是理解每个参数的物理意义。
一边问google一边问百度,感觉有些理解了,但又有些模糊。
真是纸上得来终觉浅,绝知此事要躬行。
不管怎么样,先简单了解下。
接口:
#include <sys/types.h>
#include <sys/socket.h>
int getsockopt(int s,
int level,
int optname,
const void* optval,
socklen_t *optlen);
int setsockopt(int s,
int level,
int optname,
const void* optval,
socklen_t optlen);
Level 与 Option Name
SOL_SOCKETSO_REUSEADDR
SOL_SOCKETSO_KEEPALIVE
SOL_SOCKETSO_LINGER
SOL_SOCKETSO_BROADCAST
SOL_SOCKETSO_OOBINLINE
SOL_SOCKETSO_SNDBUF
SOL_SOCKETSO_RCVBUF
SOL_SOCKETSO_TYPE
SOL_SOCKETSO_ERROR
SOL_TCP SO_NODELAY
详细解释:
SO_SNDBUF 控制发送端缓冲区大小。
SO_RCVBUF 控制接收端缓冲区大小
注意:
1> 设置值必须满足一个 最大值与最小值, 本地写代码测试后发现是[256, 4* 1024* 1024]
查看文档,发现最大值是下面2个内核参数控制:
/proc/sys/net/core/rmem_max r:read 接收端
/proc/sys/net/core/wmem_max w:write 发送端
进一步可以执行:获取3个值 最小值 默认值 最大值
cat /proc/sys/net/ipv4/tcp_wmem
cat
/proc/sys/net/ipv4/tcp_rmem
UDP的话,是下面3个: (意思还不是很明确)
cat /proc/sys/net/ipv4/udp_mem
cat
/proc/sys/net/ipv4/udp_rmem_min
cat
/proc/sys/net/ipv4/udp_wmem_min
2> 在这个区间内,获取值为设置值的2倍。即调用set(10000)后,get返回值为20000.
原文:http://blog.csdn.net/levinjoe/article/details/23707879
内容总结
以上是互联网集市为您收集整理的Linux Socket Programming by Example-第十二章 设置socket参数全部内容,希望文章能够帮你解决Linux Socket Programming by Example-第十二章 设置socket参数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。