Comment gérer les temps d'attente en Async Socket?
J'ai un code que l'utilisation de socket asynchrone à envoyer un message au client et d'attendre la réponse d'elle. Si le client n'a pas répondu dans un certain interne il considère délai d'attente. Certains de l'article dans Internet suggèrent d'utiliser WaitOne, mais cela bloque le thread et reporte le but de l'utilisation d'e/S achèvement.
Quel est le meilleur moyen de gérer les temps d'attente en async socket?
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
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas de délai d'attente ou d'annuler asynchrone
Socket
opérations.Tout ce que vous pouvez faire est de commencer votre propre
Timer
qui ferme laSocket
—le rappel sera alors immédiatement appelé et leEndX
fonction de retour avec unObjectDisposedException
si vous l'appelez. Voici un exemple: