我该如何设定时间出的插座。connect()call?[重复]
题
这个问题已经有一个答案在这里:
- 如何配置插座连接的超时 11答案
我有一个应用程序连接主机的可能下降。如果主机下来我不想等待30秒它需要时间。我使用的是阻止插座的时刻。
我一直看着座。调查()和插座。选择()但是我宁愿只有一个时间设定在插座。我不介意,如果它是一种设置我必须做的某处在该系统。此外,我似乎明白,投票并选择不工作的面向连接通-这是正确的?
如果这是绝对不可能的,什么是一个很好的方式取得结果我想要使用投票,选择或一些其他的技巧?
解决方案
看看 BeginConnect 和 异步编程的概述
IAsyncResult asr = socket.BeginConnect( ip, port, null, null );
bool res = asr.AsyncWaitHandle.WaitOne( 10000, true ); // 10 sec timeout
更新:还有一个更好的例子 在这里,.
不隶属于 StackOverflow