getsockopt套接口选项
1. getsockopt
int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
sockfd:一个标识套接口的描述字
level:选项定义的层次。例如,支持的层次有SOL_SOCKET、IPPROTO_TCP
optname:需获取的套接口选项
optval:指针,指向存放所获得选项值的缓冲区
optlen:指针,指向optval缓冲区的长度值
2. struct sock
Linux内部为每个socket所维护的一个struct sock这样一个对象
struct sock
{/* 其他字段 */int sk_rcvbuf; /* 接受缓冲区大小 */atomic_t sk_rmem_alloc; /* 已经申请的read memory */atomic_t sk_wmem_alloc; /* 已经申请的write memory */int sk_sndbuf; /* 发送缓冲区大小 *//* 其他字段 */
};
3. 实例
int snd_buf_size = 0;
socklen_t opt_size = sizeof(snd_buf_size);
getsockopt(sock_fd, SOL_SOCKET, SO_SNDBUF, &snd_buf_size, &opt_size);
printf("socket %d's sndbuf is %d bytes\n", sock_fd, snd_buf_size);
getsockopt套接口选项相关推荐
- 网络编程学习笔记(基本套接口选项)
SO_BROADCAST套接口选项: 此选项使能或禁止进程发送广播消息的能力.只有数据报套接口支持广播,并且还必须是在支持广播消息的网络上(例如以太网.令牌网).不能在一个点对点链路上进行广播. SO ...
- UNIX网络编程读书笔记:套接口选项
概述 有很多方法来获取和设置影响套接口的选项: getsockopt和setsockopt函数 fcntl函数 ioctl函数 getsockopt和setsockopt函数 这两个函数仅用于套接口. ...
- 网络编程学习笔记(TCP套接口选项)
其套接口级别为IPPROTO_TCP TCP_KEEPALIVE: 指定TCP开始发送保持存活探测分节前以秒为单位的连接空闲时间.此选项在SO_KEEPALIVE套接口选项打开时才有效 TCP_MAX ...
- 网络编程学习笔记(ICMPv6和IPv6套接口选项)
ICMPv6套接口选项级别为IPPROTO_ICMPV6 ICMP6_FILTER: 获取和设置一个icmp6_filter结构,这指明256个可能的ICMPv6消息类型中哪一个传递给在原始套接口上的 ...
- 网络编程学习笔记(IPv4套接口选项)
这些选项级别为IPPROTO_IP IP_HDRINCL: 如果此选项给一个原始IP套接口,必须为所有发判定以此原始套接口上的数据报构造自己的IP头部.一般情况下,内核为发送到原始套接口上的数据报构造 ...
- setsockopt设置套接口选项
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET , ...
- C语言socket getsockopt() setsockopt()函数(获取和设置套接口的选项?)
文章目录 man 文档(越看越懵逼啊!) 解释 getsockopt()函数用于获取任意类型.任意状态套接口的选项当前值,并把结果存入optval. setsockopt()函数用于任意类型.任意状态 ...
- C语言socket getsockopt() setsockopt()函数(获取和设置套接口的选项?)(套接字级别SOL_SOCKET)
文章目录 man 文档(越看越懵逼啊!) 解释 getsockopt()函数用于获取任意类型.任意状态套接口的选项当前值,并把结果存入optval. setsockopt()函数用于任意类型.任意状态 ...
- UNP Chapter 25 - 原始套接口
25.1. 概述 原始套接口提供以下三种TCP及UDP套接口一般不提供的功能. 1. 使用原始套接口可以读写ICMPv4,IGMPv4,ICMPv6分组.例如:Ping程序,就使用原始套接口发送ICM ...
最新文章
- javax.validation.ParameterNameProvider
- 数据分析 python 用途-想做好数据分析,不用Python怎么行?
- AT3913-XOR Tree【状压dp】
- win7 找不到 计算机策略组,win7打开组策略报错:找不到资源string.Advanced_EnableSSL3Fallback...
- 复数基础——虚数和复数_5
- 常用排序算法-java实现(插入,快排)
- ASP中Application与Sesstion对象的使用实例
- php本科毕设,基于php的新闻发布系统1本科毕设论文
- 天正电气lisp是什么文件_教大家如何使用天正电气软件绘制图纸
- ES6重要知识点总结
- 网络术语---数字签名的简单认识
- 火车票能不能选座_终于,买火车票也能选座了!
- ubuntu 下如何调节显卡风扇转速?
- 51单片机【五】LED点阵屏
- Unity一般工程升级到HDRP
- SkyEye天目全数字实时仿真软件功能介绍
- 我们为什么要坚持写博客?
- exp和expdp的filesize参数的使用--导出多个文件
- 专访黄文斌丨中专文凭的他,辞掉了9年的国企“铁饭碗”
- 微信APP支付服务端PHP完整代码