J'ai écrit un client UDP asynchrone pour parler à un serveur de mon entreprise. Quand je cours sur mon développeur, tout va bien. Lorsque je déploie sur une autre machine, je reçois une exception de socket sur EndReceive la première fois que j'envoie des données sur le socket. Ma boîte de dev est Win7 et j'ai déployé à la fois une machine XP SP3 et une machine Server 2003 R2. Voici le code recevoir:VB.NET 3.5 SocketException lors du déploiement mais pas sur la machine de développement
Private Sub ReceiveCallback(ByVal ar As IAsyncResult)
Try
' Retrieve the state object and the client socket
from the asynchronous state object.'
Dim state As StateObj = CType(ar.AsyncState, StateObj)
Dim client As Socket = state.sockArg
' Read data from the remote device.'
Dim bytesRead As Integer
receiveDone.WaitOne(Timeout.Infinite)
bytesRead = client.EndReceive(ar)
If bytesRead > 0 Then
Dim s As String = Encoding.ASCII.GetString(state.buffer, 0, bytesRead)
parsedata(s)
End If
Catch SockEx As SocketException
mlog.Error(String.Format("ID={1} {0} SocketError={2}", SockEx.Message, ID.ToString, SockEx.SocketErrorCode.ToString), SockEx)
Catch ox As System.ObjectDisposedException
mlog.Warn(String.Format("Object Disposed ID={0}", ID.ToString))
Catch ex As Exception
mlog.Error(String.Format("{1} ID={0}", ID.ToString, ex.Message), ex)
End Try
End Sub 'ReceiveCallback
L'exception que je reçois est:
System.Net.Sockets.SocketException: L'opération d'E/S a été abandonnée en raison d'une sortie de fil ou une demande d'application à System.Net.Sockets.Socket.EndReceive (IAsyncResult asyncResult) à RTSPc.Connection.ReceiveCallback (IAsyncResult ar)
Le SocketException est OperationAborted
C'est comme regarder quelqu'un se frapper au visage avec un marteau ... – Will
Merci, c'est très utile. – jercra