Linux网络编程基础--socket常用选项

《Linux高性能服务器编程》阅读笔记:

  Linux系统中,有控制文件描述符属性的通用Posix系统调用fcntl(),还有两个专门用来读取和设置socket文件描述符属性的方法:

#include <sys/types.h>
#include <sys/socket.h>

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);

  (1) sockfd参数指定被操作的目标socket
  (2) level参数该描述符的使用的协议,如IPPROTO_IP(IPv4)、IPPROTO_IPV6(IPv6)、IPPROTO_TCP(TCP选项)
  (3) option_name参数指定要设置的属性的名字,如用于修改描述符的接收缓冲区大小的SO_RCVBUF
  (4) optval参数和optlen分别指定该属性要使用的值和值的属性,如修改缓冲区大小时optval为缓冲区的大小

  具体如下表格:

level option_name optval 说明
SOL_SOCKET (通用socket协议,与具体协议无关) SO_DEBUG int 打开调试信息
SO_REUSEADDR int 重用本地地址(TIME_WAIT状态的地址)
SO_TYPE int 获取socket类型
SO_ERROR int 获取并清除socket错误状态
SO_DONTROUTE int 不查看路由表,直接将数据发送给本地局域网的主机。含义和send()的flags参数设置为MSG_DONTROUTE标志类似
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值