Canceled I/O: WSARecv mit ERROR_CONNECTION_ABORTED, obwohl nur WSASend abgebrochen wird
- 
					
					
					
					
 Hallo! Folgendes mir unerklärliches Verhalten: Clientprogramm auf Server 2003 baut Verbindung zum Serverprogramm auf, sendet pro Sekunde ein Ping-Paket in einem extra Thread. 
 Beim Schließen des Clients wird der Thread beendet, das WSASend des Ping-Pakets könnte dabei noch ausstehend sein. MSDN sagt dazu, dass dieses WSASend dann abgebrochen wird ( http://msdn.microsoft.com/en-us/library/windows/desktop/ms742203 ). Und das wird es auch: ERROR_OPERATION_ABORTED.
 Doch was ich nicht verstehe: Noch davor kehrt WSARecv mit ERROR_CONNECTION_ABORTED zurück! Ohne, dass dieser Thread es jemals aufgerufen hätte!
 Wie kann das sein? Es sollten doch nur die I/O operations des beendenden Threads abgebrochen werden. Das einzige WSARecv wird in den workerthreads (IOCP) aufgerufen.Log: Close(): stop ping thread 
 WSARecv error: ERROR_CONNECTION_ABORTED
 WSASend error: ERROR_OPERATION_ABORTED
 Connection::CloseAlso ich verstehe nicht, wie der WSARecv error zustande kommt, noch bevor closesocket() (in Connection::Close) jemals aufgerufen wird. Die log-writes sind natürlich gelockt. 
 Ich habe auch getestet, ob es wirklich an dem Send liegt. Wenn ich in dem Ping-Thread noch auf alle Sends des Threads warte, kann ich diesen Fehler nicht reproduzieren. Mit Server 2012 bis jetzt auch nicht.