【问题标题】:How do I set the time out of a socket.connect() call? [duplicate]如何设置 socket.connect() 调用的时间? [复制]
【发布时间】:2010-10-02 04:42:32
【问题描述】:

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

我一直在查看 socket.poll() 和 socket.select() 但我宁愿在套接字上设置一个时间。我不介意这是否是我必须在系统中某处进行的设置。另外,我似乎理解 poll 和 select 不适用于面向连接的通信 - 这是正确的吗?

如果这绝对不可能,那么使用 poll、select 或其他一些技术获得我想要的结果的好方法是什么?

【问题讨论】:

    标签: .net sockets connect


    【解决方案1】:

    BeginConnectAsynchronous Programming Overview

    IAsyncResult asr = socket.BeginConnect( ip, port, null, null );
    
    bool res = asr.AsyncWaitHandle.WaitOne( 10000, true );  // 10 sec timeout
    

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

    【讨论】:

      猜你喜欢
      • 2015-12-17
      • 2019-07-31
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      • 2011-02-25
      • 2021-01-16
      • 1970-01-01
      相关资源
      最近更新 更多