Nach dem Aufrufen von Socket.Shutdown, Socket.Close und Socket.Disconnect scheint Socket.ReceiveAsync nicht abzubrechen. Versuche, das SocketAsycEventArgs Objekt im ReceiveAsync Aufruf verwendet wiederzuverwenden Ergebnis in den Fehler (in der Dokumentation als Best Practice empfohlen):Abbrechen eines Socket.xxxxAsync-Aufrufs
An asynchronous socket operation is already in progress using this SocketAsyncEventArgs instance
Was muss ich tun ReceiveAsync zu bekommen ihren Griff auf dieser SocketAsyncEventArgs Instanz freizugeben?
Edit: Ich habe dies umgangen, indem ein ausstehender Empfang markiert und keine Bereinigung durchgeführt, bis der Empfang kommt (d. H. Abgeschlossen wird ausgelöst). Fühlt sich aber nicht so gut an. Kann es nicht einfach abgebrochen werden, wie die WebRequest API?
Dies versucht nicht, die gestellte Frage zu beantworten. Das Problem des OPs kommt von dem Versuch, den "SocketAsyncEventArgs" zu verwenden, bevor der 'Completed'-Handler ausgelöst wird. – binki