我在linux ubuntu上运行了一个编程,尝试使用TCP连接到服务器端口。 您能否告诉我如何找到连接到ubuntu的服务器套接字的客户端套接字的超时值?
谢谢。
答案 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 )。但是我确信你的问题还不止于此。