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套接口选项相关推荐

  1. 网络编程学习笔记(基本套接口选项)

    SO_BROADCAST套接口选项: 此选项使能或禁止进程发送广播消息的能力.只有数据报套接口支持广播,并且还必须是在支持广播消息的网络上(例如以太网.令牌网).不能在一个点对点链路上进行广播. SO ...

  2. UNIX网络编程读书笔记:套接口选项

    概述 有很多方法来获取和设置影响套接口的选项: getsockopt和setsockopt函数 fcntl函数 ioctl函数 getsockopt和setsockopt函数 这两个函数仅用于套接口. ...

  3. 网络编程学习笔记(TCP套接口选项)

    其套接口级别为IPPROTO_TCP TCP_KEEPALIVE: 指定TCP开始发送保持存活探测分节前以秒为单位的连接空闲时间.此选项在SO_KEEPALIVE套接口选项打开时才有效 TCP_MAX ...

  4. 网络编程学习笔记(ICMPv6和IPv6套接口选项)

    ICMPv6套接口选项级别为IPPROTO_ICMPV6 ICMP6_FILTER: 获取和设置一个icmp6_filter结构,这指明256个可能的ICMPv6消息类型中哪一个传递给在原始套接口上的 ...

  5. 网络编程学习笔记(IPv4套接口选项)

    这些选项级别为IPPROTO_IP IP_HDRINCL: 如果此选项给一个原始IP套接口,必须为所有发判定以此原始套接口上的数据报构造自己的IP头部.一般情况下,内核为发送到原始套接口上的数据报构造 ...

  6. setsockopt设置套接口选项

    1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET , ...

  7. C语言socket getsockopt() setsockopt()函数(获取和设置套接口的选项?)

    文章目录 man 文档(越看越懵逼啊!) 解释 getsockopt()函数用于获取任意类型.任意状态套接口的选项当前值,并把结果存入optval. setsockopt()函数用于任意类型.任意状态 ...

  8. C语言socket getsockopt() setsockopt()函数(获取和设置套接口的选项?)(套接字级别SOL_SOCKET)

    文章目录 man 文档(越看越懵逼啊!) 解释 getsockopt()函数用于获取任意类型.任意状态套接口的选项当前值,并把结果存入optval. setsockopt()函数用于任意类型.任意状态 ...

  9. UNP Chapter 25 - 原始套接口

    25.1. 概述 原始套接口提供以下三种TCP及UDP套接口一般不提供的功能. 1. 使用原始套接口可以读写ICMPv4,IGMPv4,ICMPv6分组.例如:Ping程序,就使用原始套接口发送ICM ...

最新文章

  1. javax.validation.ParameterNameProvider
  2. 数据分析 python 用途-想做好数据分析,不用Python怎么行?
  3. AT3913-XOR Tree【状压dp】
  4. win7 找不到 计算机策略组,win7打开组策略报错:找不到资源string.Advanced_EnableSSL3Fallback...
  5. 复数基础——虚数和复数_5
  6. 常用排序算法-java实现(插入,快排)
  7. ASP中Application与Sesstion对象的使用实例
  8. php本科毕设,基于php的新闻发布系统1本科毕设论文
  9. 天正电气lisp是什么文件_教大家如何使用天正电气软件绘制图纸
  10. ES6重要知识点总结
  11. 网络术语---数字签名的简单认识
  12. 火车票能不能选座_终于,买火车票也能选座了!
  13. ubuntu 下如何调节显卡风扇转速?
  14. 51单片机【五】LED点阵屏
  15. Unity一般工程升级到HDRP
  16. SkyEye天目全数字实时仿真软件功能介绍
  17. 我们为什么要坚持写博客?
  18. exp和expdp的filesize参数的使用--导出多个文件
  19. 专访黄文斌丨中专文凭的他,辞掉了9年的国企“铁饭碗”
  20. 微信APP支付服务端PHP完整代码

热门文章

  1. cots 常见问题解答
  2. [JDK1.6] JAVA集合 ConcurrentHashMap源码浅析
  3. Android手势操作耍起来!
  4. gps网络对时Linux,gps网络时间对时服务器的功能简介
  5. 创建学生表,(sno,name,score,class),求每个班级中低于最高成绩的那些人
  6. windows抓屏排除指定窗口
  7. 山东大学软件学院项目实训第一周
  8. 自己搞个chatgpt机器人
  9. 99%的人都想要的广告拦截软件
  10. 端口映射工具:ngrok的使用