套接字选项的介绍

套接字选项设置和获取函数

在进行网络编程的时候,我们需要经常去查看并且设置套接字的某些特性。例如我们想去设置地址复用,设置读写数据的超时时间,想对读写缓冲区的大小进行调整,其中获得套接字的选项就是getsckopt()函数,那么对应的设置套接字的选项就是sesockopt()函数。

1
2
3
4
5
#include <sys/socket.h>

int getsockopt(int sockfd, int level, int option_name, void * option_value,socklen_t * option_len);

int setsockopt(int sockfd, int level, int option_name, const void * option_value,socklen_t * option_len);

参数的介绍

sockfd

指定被操作的目标socket

level

指定要操作哪个协议的选项,按照level可以把套接字选项分为如下三种:

  1. 通用套接选项:level的值为SOL_SOCKET
  2. IP选项:level的值为IPPROTO_IP
  3. TCP选项:level的值为IPPROTO_TCP

option_name

需要访问的选项名。

option_value和option_len

被操作的选项的值和长度

返回值

执行成功的时候返回值为0,函数执行失败时返回为-1并设置errno

套接字选项的列表

image