, Идея состоит в том, чтобы иметь один таймер, который будет следить за всем существующим соединением и проверять его время ожидания.
я есть код, который использует асинхронный сокет для отправки сообщения клиенту и ожидая ответа от него. Если клиент не ответил в указанном внутреннем сообщении, он будет считать тайм-аут. Некоторые статьи в Интернете предлагают использовать 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