int error = 0; socklen_t len = sizeof(error); if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &error, &len) < 0) { // 错误处理 } else { if (error != 0) { // 连接失败 } else { // 连接成功 } } 在这个示例中,我们首先定义了一个用于存储错误代码的变量error,然后调用getsockopt来...
getsockopt(fd, SOL_SOCKET, SO_ERROR, (void*) &status, &slen); 这种方法来获取具体的错误原因。 如果fd上出现了错误,那么第一次调用getsockopt会通过status返回错误原因。如果此时并没有调用close(fd),按理说这个错误在fd上依然存在,但是如果再次调用上面的getsockopt,则会告知用户此fd上没有任何错误。。。这种...
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_RCVTIMEO 接收超时 struct timeval SO_...
SO_REUSERADDR 允许重用本地地址和端口intSO_TYPE 获得套接字类型intSO_BSDCOMPAT 与BSD系统兼容int===IPPROTO_IP---IP_HDRINCL 在数据包中包含IP首部intIP_OPTINOSIP首部选项intIP_TOS 服务类型 IP_TTL 生存时间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_ERRORint检索错误状态并清除。 SO_EXCLUSIVEADDRUSEBOOL阻止任何其他套接字绑定到同一地址和端口。 在调用绑定函数之前,必须设置此选项。 SO_GROUP_IDGROUP保留。 SO_GROUP_PRIORITYint保留。 SO_KEEPALIVEBOOL正在发送“保持连接”。 ATM 套接字不支持。
SO_CONNECT_TIME 选项可与getsockopt函数一起使用,以检查是否已建立连接。 当ConnectEx函数调用正在进行时,也可以使用此选项。 如果已建立连接,SO_CONNECT_TIME选项可以确定建立连接的时间长度。 如果未连接套接字,则 getsockopt返回SOCKET_ERROR。 必须检查这样的连接,以查看是否已建立一段时间的连接,而不发送任何数据...
{"SO_ERROR",SOL_SOCKET,SO_ERROR,sock_str_int}, {"SO_KEEPALIVE",SOL_SOCKET,SO_KEEPALIVE,sock_str_flag}, {"SO_LINGER",SOL_SOCKET,SO_LINGER,sock_str_linger}, {"SO_OOBINLINE",SOL_SOCKET,SO_OOBINLINE,sock_str_flag}, {"SO_RCVBUF",SOL_SOCKET,SO_RCVBUF,sock_str_int}, ...
SO_BROADCAST BOOL 套接口设置为传送广播信息。SO_DEBUG BOOL 允许调试。SO_DONTLINER BOOL 若为真,则SO_LINGER选项被禁止。SO_DONTROUTE BOOL 禁止选径。SO_ERROR int 获取错误状态并清除。SO_KEEPALIVE BOOL 发送“保持活动”信息。SO_LINGER struct linger ...