一、套接口选项
- 函数getsockopt和setsockopt
- 函数fcntl
- 函数ioctl
二、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成功,-1出错
sockfd:必须指向一个打开的套接口描述字
level:指定系统中解释选项的代码,选项定义的层次,例如SOL_SOCKET、IPPROTO_TCP
optname:普通套接口代码或特定于协议的代码,例如TPv4、IPv6或TCP
optval:一个指向变量的指针,选项值的缓冲区
optlen:指向optval缓冲区的长度值
level和optname相关的值:
三、SO_BROADCAST选项
此选项使能或禁止进程发送广播消息的能力,并且还必须是在支持广播消息的网络上。
一个应用进程在发送一个i额广播数据报之前必须设置此套接口选项,因此它能有效防止该进程在应用程序未设计成能广播时就发送广播消息。
四、fcntl函数
#include <fcntl.h> int fcntl(int fd, int cmd, ... /* int arg */); 返回:成功依赖于参数cmd,-1出错 fd:文件描述符 cmd:指令