11.套接口选项getsockopt与setsockopt

每个套接口都会有很多选项,举个例子比如接受缓冲区的大小,如何获取这些选项和以及设置这些选项在某些时候则显得比较重要(虽然很多时候默认的就可以了)。

 

函数说明

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

 

返回0表示OK,返回-1表示出错。

sockfd套接口的描述字。

 

level表示级别:比如说接受缓冲区大小则是普通套接口级别,再比如IP数据包头部选项则是IPPROTO_IP级别,再比如TCP有最大重传时间(这个时间就是在此事件内未获得对方的ACK确认,及重传)是IPPROTO_TCP级别。很好理解。

 

optname:则是选项名,比如说想查看接受缓冲区大小,选项名为SO_RCVBUF,对应的级别是SOL_SOCKET。

 

(很明显,级别和选项名有对应的关系。这个大家可以GOOGLE一下,这里不一一列出了)。

 

optval:选项的值,void *类型很明显,因为不同选项返回不同值,所以用void *的统一返回.

 

optlen:选项值的长度。

你可能感兴趣的:(socket,Google)