Einzelnen Beitrag anzeigen

Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#1

[Winsock] Server liefert nach Neustart immer 10048 (WSAEADDRINUSE)

  Alt 10. Aug 2010, 11:30
Hallo,

ich stehe gerade vor einem Komischen Problem. Mein, mit Winsock erstellter, Server Socket wird scheinbar nicht richtig/sauber geschlossen.

Ich lasse einen Thread laufen, der einen Server erstellt, auf eine Verbindung wartete und, wenn diese beendet wurde, sich aufräumt. Wird dieser Thread neu erstellt schlägt bind() immer fehl und WSAGetLastError() sagt 10048, was darauf hindeutete, das der alte Server Socket noch aktiv ist. (WSAEADDRINUSE)

Aufräumen passiert so:

Delphi-Quellcode:
  shutdown(fSockServer, SD_BOTH);
  closesocket(fSockServer);

Wenn ich zusätzlich noch WSACleanup() aufrufe, kann ich den Server zu einem späteren Zeitpunkt ohne Probleme zu wieder starten.


Grüße,
Win32.API
  Mit Zitat antworten Zitat