, Идея состоит в том, чтобы иметь один таймер, который будет следить за всем существующим соединением и проверять его время ожидания.

я есть код, который использует асинхронный сокет для отправки сообщения клиенту и ожидая ответа от него. Если клиент не ответил в указанном внутреннем сообщении, он будет считать тайм-аут. Некоторые статьи в Интернете предлагают использовать WaitOne, но это блокирует поток и откладывает цель использования завершения ввода-вывода.

Каков наилучший способ обработки тайм-аута в асинхронном сокете?

 Sub OnSend(ByVal ar As IAsyncResult)
       Dim socket As Socket = CType(ar.AsyncState ,Socket)
       socket.EndSend(ar)

       socket.BeginReceive(Me.ReceiveBuffer, 0, Me.ReceiveBuffer.Length, SocketFlags.None, New AsyncCallback(AddressOf OnReceive), socket)

 End Sub

Ответы на вопрос(1)

Ваш ответ на вопрос