本章主要介绍了套接口选项,包括基本选项,IPv4, IPv6和TCP选项。然后是一些函数,getsockopt, setsockopt, fcntl的使用,当然还提到了ioctl。
这些选项我以前几乎都没有接触过,没有很深刻的体会,书上也介绍的很清楚了,下面只是把Linux下面支持的选项及其缺省值贴出来,供大家参考。(注:我按照书上的例子执行,只是多添加了几个选项)
基本套接口选项
SO_BROADCAST: default = off
SO_DEBUG: default = off
SO_DONTROUTE: default = off
SO_ERROR: default = 0
SO_KEEPALIVE: default = off
SO_LINGER: default = l_onoff = 0, l_linger = 0
SO_OOBINLINE: default = off
SO_RCVBUF: default = 87380
SO_SNDBUF: default = 16384
SO_RCVLOWAT: default = 1
SO_SNDLOWAT: default = 1
SO_RCVTIMEO: default = 0 sec, 0 usec
SO_SNDTIMEO: default = 0 sec, 0 usec
SO_REUSEADDR: default = off
SO_REUSEPORT: (undefined)
SO_TYPE: default = 1
SO_USELOOPBACK: (undefined)
//IPv4选项
IP_HDRINCL: default = off
IP_RECVDSTADDR: (undefined)
IP_RECVIF: (undefined)
IP_TOS: default = 0
IP_TTL: default = 64
//TCP选项
TCP_KEEPALIVE: (undefined)
TCP_MAXRT: (undefined)
TCP_MAXSEG: default = 536
TCP_NODELAY: default = off
注:undefined就是不支持。

