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);
通用套接字选项
1)SO_BROADCAST 本选项开启或禁止进程发送广播消息的能力,只有数据报套接字支持广播,并且还必须是在支持广播消息的网络上
2)SO_DEBUG 本选项仅由TCP支持,当TCP开启该选项时,内核将为TCP在该套接字发送和接收的所有分组保留详细跟踪信息,这些信息保存在内核的某个环形缓冲区中,并可用trpt程序进行检查
3)SO_DONTROUTE 本选项规定外出的分组将绕过底层协议的正常路由机制,路由守护进程(routed和gated)经常使用本选项来绕过路由表
4)SO_ERROR 当一个套接字上发生错误时,源自Berkeley的内核中的协议模块将该套接字的明文so_error的变量设为标准的Unix_Exxx值中的一个,我们称它为该套接字的待处理错误,内核能够以下面两种方式之一立即通知该错误:
a)如果进程阻塞在对该套接字的select调用上,那么无论是检查可读条件还是可写条件,select均返回并设置其中一个或所有两个条件;
b)如果进程使用信号驱动式I/O模型,那就给进程或进程组产生一个SIGIO信号
5)