一、基本概念
1.设置套接字的选项对套接字进行控制
2.除了设置选项外,还可以获取选项
3.选项的概念相当于属性,所以套接字选项也可说是套接字属性
4.有些选项(属性)只可获取,不可设置;
5.有些选项既可设置也可获取
选项级别
SOL_SOCKET 该级别的选项只作用于套接字本身
SOL_LRLMP 该级别的选项作用于IrDA协议
IPPROTO_IP 该级别的选项作用于IPv4协议
IPPROTO_IPV6 该级别的选项作用于IPv6协议
IPPROTO_RM 该级别的选项作用于可靠的多播传输
IPPROTO_TCP 该级别的选项适用于流式套接字
IPPROTO_UDP 该级别的选项适用于数据报套接字
二、getsockopt获取套接字选项
#include <sys/types.h>/* See NOTES */
#include <sys/socket.h>
int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t*optlen);
sockfd:套接字描述符
level:表示选项的级别
optname:表示要获取的选项名称
optval:指向存放接收到的选项内容的缓冲区
optlen:指向optval所指缓冲区的大小
函数返回值:
执行成功返回0,否则返回‒1,errno来获取错误码
三、setsockopt设置套接字选项
#include <sys/types.h>/* See NOTES */
#include <sys/socket.h>
int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
sockfd:套接字描述符
level:表示选项的级别
optname:表示要设置的选项名称
optval:指向存放接收到的选项内容的缓冲区
optlen:指向optval所指缓冲区的大小
函数返回值:
执行成功返回0,否则返回‒1,errno来获取错误码