Как обрабатывать тайм-аут в асинхронном сокете?

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