一、概述
有几种常用方法来获取和设置影响套接字选项:
- getsockopt和setsockopt函数
- fcntl函数
- ioctl函数
二、getsockopt和setsockopt函数
#include <sys/socket.h>
int getsockopt(int sockfd, int level, void* optval, socklen_t* optlen);
int setsockopt(int sockfd, int level, const void* optval, socklen_t optlen);
//成功,返回0;出错,返回-1
参数level:指定系统中解释选项的代码或为通用套接字代码,或为某个特定协议的代码。关于level的取值详见书,后续介绍常用选项。
参数optval:是一个指向某个变量的指针,setsockopt从*optval中取得选项待设置的新值,getsockopt则把已获取的选项的当前值存放到 *optval中。*optval的大小由最后一个参数指定。
对于getsockopt, *optval返回值为0时表示相应选项被禁止,不为0表示被开启;对于setsockopt,*optval不为0则开启此选项,设为0则禁止此选项。
三、通用套接字选项
给出通用套接字的简单介绍,