如何设置socket.connect()调用的时间?

时间:2009-01-19 08:33:26

标签: .net sockets connect

我有一个应用程序连接到可能已关闭的主机。如果主机出现故障,我不想等待超时所需的30秒钟。我目前正在使用阻塞套接字。

我一直在看socket.poll()和socket.select(),但我宁愿在套接字上设置时间。我不介意它是否是我必须在系统中的某个地方做的设置。此外,我似乎明白民意调查和选择不适用于面向连接的通信 - 这是正确的吗?

如果这绝对不可能,那么使用民意调查,选择或其他技术获得我想要的结果的好方法是什么?

1 个答案:

答案 0 :(得分:2)

请参阅BeginConnectAsynchronous Programming Overview

IAsyncResult asr = socket.BeginConnect( ip, port, null, null );

bool res = asr.AsyncWaitHandle.WaitOne( 10000, true );  // 10 sec timeout

更新:有一个更好的例子here