在服务程序中,对于长连接的服务.经常会出现一些连接异常,比如常见的CLOSE_WAIT.我们可以同过getsockopt函数来获得某个socket的状态。
#include
struct tcp_info optval;
int nClientFd = CSockTool::connect("192.168.10.4", 8899);
int ret= getsockopt(nClientFd, IPPROTO_TCP,TCP_INFO, &optval, &len);
if(optval.tcpi_state==TCP_CLOSE_WAIT)
//do something
//这个方法是在linux上的,其他系统需要查手册。
阅读(4728) | 评论(0) | 转发(0) |