linux上套接字的连接超时是多少?

时间:2010-06-02 21:32:51

标签: networking sockets ubuntu

我在linux ubuntu上运行了一个编程,尝试使用TCP连接到服务器端口。 您能否告诉我如何找到连接到ubuntu的服务器套接字的客户端套接字的超时值?

谢谢。

2 个答案:

答案 0 :(得分:2)

最好的便携式解决方案是使用您自己的超时,以确保您可以依赖已知值:

1)在connect()之前,将客户端套接字设置为非阻塞。使用ioctl()FIONBIO标记或fcntl()O_NONBLOCK标记。在Win32下,使用ioctlsocket()FIONBIO标记。

2)connect()到远程对等方:如果connect()成功,那么,您已连接。

3)但是,如果connect()返回-1并将errno设置为EINPROGRESS(Win32下的WSAEWOULDBLOCK),则只需select()用于写入的套接字描述符你自己的超时。

答案 1 :(得分:1)

首先查看getsockopt(3)手册页( SO_RCVTIMEO )。但是我确信你的问题还不止于此。