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