【问题标题】:C# (socket) wait for connection during x secondsC#(套接字)在 x 秒内等待连接
【发布时间】:2017-09-02 04:38:33
【问题描述】:

我正在制作一个客户端套接字。该套接字将向另一个套接字发送一些数据并等待其响应(如果有)。我希望我的客户端套接字等待响应 5 秒。问题是,如果我把它置于接收器模式,程序只有在它获得连接后才会运行。我希望我的程序监听一段时间,直到他得到响应(如果另一个套接字没有被编程为应答,女巫可能永远不会)。

【问题讨论】:

    标签: c# sockets client listener wait


    【解决方案1】:

    Socket 类包含一个 ReceiveTimeout 属性,默认为 Infinite。

    https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.receivetimeout(v=vs.110).aspx

    如果你设置了这个值,那么 Socket.Recieve() 方法只会阻塞直到超时,然后会抛出一个 TimeoutException。

    Socket sock;
    
    //socket connection and sending data
    sock.ReceiveTimeout = 5000;
    try {
        data = sock.Receive();
    }
    catch (TimeoutException ex)
    {
        // it never answered
    }
    

    【讨论】:

    • 确实如此!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-12-10
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2012-04-15
    • 1970-01-01
    相关资源
    最近更新 更多