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级别。很好理解。

扫描二维码关注公众号,回复: 821177 查看本文章

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

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

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

optlen:选项值的长度。

猜你喜欢

转载自memorymyann.iteye.com/blog/636461