Socket 是应用层和传输层之间的一个抽象层,
有很多选项可对其进行控制:

SO_DEBUG SO_OOBINLINE
SO_REUSEADDR SO_LINGER
SO_TYPE SO_RCVLOWAT
SO_ERROR SO_SNDLOWAT
SO_DONTROUTE SO_RCVTIMEO
SO_RCVBUF SO_SNDtIMEO
SO_SNDBUF TCP_MAXSEG
SO_KEEPALIVE TCP_NODELAY

Socket 选项简要列表

Level Option Name 数据类型 说明
SO_DEBUG int 打开调试信息
SO_REUSEADDR int 重用本地地址
SO_TYPE int 获取 socket 类型
SO_ERROR int 获取并清除 socket 错误状态
SO_DONTROUTE int 不查看路由表,直接发送给局域网内主机。
SO_RCVBUF int TCP 接受缓冲区大小
SOL_SOCKET 通用选项 SO_SNDBUF int TCP 发送缓冲区大小
SO_KEEPALIVE int 发送周期性保活报文以维持连接
SO_OOBINLINE int
SO_LINGER linger 若有数据待发送。则延迟关闭。
SO_RCVLOWAT int TCP 接受缓冲区低水位标记
SO_SNDLOWAT int TCP 发送缓冲区高水位标记
SO_RCVTIMEO timeval 接收数据超时
SO_SNDTIMEO timeval 发送数据超时
IPPROTO_IP IPV4选项 IP_TOS int 服务类型
IP_TTL int 存活时间
IPV6_NEXTHOP socketaddr 下一跳 IP 地址
IPPROTO_IPV6 IPV6选项 IPV6_RECVPKTINFO int 接收分组信息
IPV6_DONTFRAGi int 禁止分片
IPV6_RECVTCLASS int 接收通信类型
IPPROTO_TCP TCP选项 TCP_MAXSEG int TCP 最大报文段大小
TCP_NODELAY int 禁止 Nagle 算法

Socket 选项详细说明

SO_DEBUG

SO_REUSEADDR

SO_TYPE

SO_ERROR

SO_DONTROUTE

SO_RCVBUF

SO_SNDBUF

SO_KEEPALIVE

SO_OOBINLINE

SO_LINGER

SO_RCVLOWAT

SO_SNDLOWAT

SO_RCVTIMEO

SO_SNDTIMEO

IP_TOS

IP_TTL

IPV6_NEXTHOP

IPV6_RECVPKTINFO

IPV6_DONTFRAG

IPV6_RECVTCLASS

TCP_MAXSEG

TCP_NODELAY

留言