SOL_SOCKET级别: SO_DEBUG:启用或禁用调试模式。 SO_REUSEADDR:允许重新使用本地地址。 SO_KEEPALIVE:保持连接处于活动状态。 SO_LINGER:在关闭套接字时等待数据传输完成。 SO_RCVBUF:接收缓冲区大小。 SO_SNDBUF:发送缓冲区大小。 SO_ERROR:获取套接字的错误状态。 IPPROTO_TCP级别: TCP_NODELAY:禁用Nagle算法。
SO_ERROR 获得套接字错误 int SO_KEEPALIVE 保持连接 int 检测对方主机是否崩溃,避免(服务器)永远阻塞于TCP连接的输入。 设置该选项后,如果2小时内在此套接口的任一方向都没有数据交换,TCP就自动给对方 发一个保持存活探测分节(keepalive probe)。这是一个对方必须响应的TCP分节.它会导致以下三种情况: 对方接收...
SO_ERRORint检索错误状态并清除。 SO_EXCLUSIVEADDRUSEBOOL阻止任何其他套接字绑定到同一地址和端口。 在调用绑定函数之前,必须设置此选项。 SO_GROUP_IDGROUP保留。 SO_GROUP_PRIORITYint保留。 SO_KEEPALIVEBOOL正在发送“保持连接”。 ATM 套接字不支持。
int so_type = -1; socklen_t optlen; s = socket(PF_INET,SOCK_STREAM,0); if(s==-1) bail("socket(2)"); optlen = sizeof so_type; z = getsockopt(s,SOL_SOCKET,SO_TYPE,&so_type,&optlen); if(z) bail("getsockopt(s,SOL_SOCKET," "SO_TYPE)"); assert(optlen == sizeof so_...
SO_DONTROUTE不查找路由int SO_ERROR获得套接字错误int SO_KEEPALIVE保持连接int SO_LINGER 延迟关闭连接struct linger SO_OOBINLINE带外数据放入正常数据流int SO_RCVBUF 接收缓冲区大小int SO_SNDBUF 发送缓冲区大小int SO_RCVLOWAT 接收缓冲区下限int SO_SNDLOWAT 发送缓冲区下限int ...
SO_TYPE 返回socket 形态. SO_ERROR 返回socket 已发生的错误原因 SO_DONTROUTE 送出的数据包不要利用路由设备来传输. SO_BROADCAST 使用广播方式传送 SO_SNDBUF 设置送出的暂存区大小 SO_RCVBUF 设置接收的暂存区大小 SO_KEEPALIVE 定期确定连线是否已终止. ...
SO_DEBUG 允许调试 int SO_DONTROUTE 不查找路由 int SO_ERROR 获得套接字错误 int SO_KEEPALIVE 保持连接 int
在Unix网络编程中通常用到getsockopt和setsockopt两个函数来获取和设置套接口的选项。 getsockopt()函数用于获取任意类型、任意状态套接口的选项当前值,并把结果存入optval。 1#include <sys/socket.h>2intgetsockopt(intsockfd,intlevel,intoptname,void*optval, socklen_t *optlen);3/*4sockfd:一个标识套接口的描述...
sosend函数小结 401 16.7.4 性能问题 401 16.8 read、readv、recvfrom和recvmsg 系统调用 401 16.9 recvmsg系统调用 402 16.10 recvit函数 403 16.11 soreceive函数 405 16.11.1 带外数据 406 16.11.2 举例 406 16.11.3 其他的接收操作选项 407 16.11.4 接收缓存的组织:报文边界 407 16.11.5 接收缓存的组织:...
SO_ERRORint检索错误状态并清除。 SO_EXCLUSIVEADDRUSEBOOL阻止任何其他套接字绑定到同一地址和端口。 在调用绑定函数之前,必须设置此选项。 SO_GROUP_IDGROUP保留。 SO_GROUP_PRIORITYint保留。 SO_KEEPALIVEBOOL正在发送“保持连接”。 ATM 套接字不支持。