Server Socket:
SO_TIMEOUT
服务器socket的accept函数超时
SO_REUSEADDR
服务器socket在进程退出后不像file descriptor那样立刻销毁,而会等一段时间,以防止另一个进程立刻绑定到相同端口接收剩余数据。如果SO_REUSEADDR设置为True,则以上机制不执行,socket会立刻销毁。(这一选项应在服务器socket bind前应用,且另一个进程也设置相同的选项)
SO_RECVBUF
accept回来的socket接收默认buffer
Client Socket:
TCP_NODELAY
顾名思意
SO_REUSEADDR
同上,应用于socket.close()以后
SO_TIMEOUT
应用于recv超时
SO_LINGER
设置socket close时,时否等待OS返回,默认不等待。(socket close的时候如果有剩下的数据没发完,则oS不会立刻关闭它)
SO_SNFBUF SO_RCVBUF
发送、接收buffer
SO_KEEPALIVE
对于长时间处于空闲状态下,没有数据收发的socket,是否要超时关闭