客户端connect 服务器时候,有可能服务器down掉了,从而导致一直在等connect超时,这个系统时间是21秒左右。我试着用setsockopt去设置connect超时时间,不行 不管用。
timeval t{3, 1};
ret = setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &t, sizeof(t));
ret = setsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, &t, sizeof(t));
ret = ::connect(socket, (sockaddr *) &addr, sizeof(addr));
查阅资料,有人提出把socket设为非阻塞然后可以用select限制超时时间,我试一试。