UNIX(网络编程-基本用法):06---套接字选项简介(getsockopt、setsockopt)

一、套接字选项的设置

二、getsockopt、setsockopt

#include<sys/socket.h>
int setsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen);
int getsockopt(int sockfd, int level, int optname,void *optval, socklen_t *optlen);

//返回值:成功返回0;失败返回-1
  • 参数:
sockfd 指向一个已打开的套接字描述符
level(级别) 指定系统中解释选项的代码或为通用套接字代码,或为某个特定于协议的代码(IPV4、IPV6、TCP、SCTP)
optname 对应于level级别下面的选项
optval

一个指向某个变量的指针

用于设置/取得选项信息

optlen 对应于optval的大小/指针大小

功能:

  • 用于设置/获得套接字选项

套接字选项大致分为两种类型

  • ①启用或禁止某个特性的二元选项(称为标志选项)
  • ②取得并返回我们可以设置或检查的特定值的选项(称为值选项)

当我们调用getsockopt时

  • *optval如果返回值是0:表示相应选项被禁止
  • *optval如果返回值是非0:表示相应选项被启用

当我们调用setsockopt时

  • 赋予*optval的值为0:表示禁用该选项
  • 赋予*optval的值为非0:表示启用该选项

 三、套接字选项汇总

下面表格的格式说明

  • 如果标志列不含有,那么相应选项用于在用户进程与系统之间传递所指定数据类型的值
  • 数据类型表示optval的数据类型(如果是结构体类型,就在后面加{},例如struct linger表示为linger{})
  • get:代表是否可以获得该选项
  • set:代表是否可以设置该选项

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/89532613