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