Sind Sie close() auf und Sie Closesocket() austauschbar?
Habe ich gesehen, dass viele Antworten hier, die sagen, zu verwenden, schließen (), um zu zerstören eine Steckdose, aber die Anleitung, die ich verwendet, aus msdn hat mich mit Sie Closesocket(). Ich Frage mich, ob es einen Unterschied gibt und wenn es Gründe für die eine oder die andere.
In beiden Fällen sehe ich den Vorschlag mit shutdown() also das ist alles schön und gut.
- Sie sicher, dass Sie nicht immer linux (close()) und Windows (Sie Closesocket()) zu verwechseln?
- Ich glaube
close()
ist ein *nix-Funktion;closesocket()
ist die Windows-Entsprechung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
close()
ist ein *nix-Funktion. Es funktioniert auf jedem file-Deskriptor, und die Steckdosen in der *nix-sind ein Beispiel für einen Datei-Deskriptor, so wäre es korrekt schließen-sockets als auch.closesocket()
ist eine Windows-spezifische Funktion, die speziell arbeitet mit sockets. Sockets unter Windows verwenden Sie keine *nix-Stil-Datei-Deskriptoren,socket()
gibt einen handle auf ein kernel-Objekt statt, so dass es geschlossen werden muss, mitclosesocket()
.Ich finde es eher beschämend, dass BSD-sockets beinhalten keine spezifischen Gegenstück zu
socket
- Funktion, die genutzt werden könnte, überall - aber so ist das Leben.Den letzten, aber nicht zuletzt, nicht zu verwechseln
shutdown
'ing, eine Steckdose, schließen Sie die Steckdose.shutdown()
Stoppt die übertragung auf a-Buchse, aber die Buchse bleibt im system und alle Ressourcen in Verbindung mit ihm bleiben. Sie müssen noch in der Nähe der Steckdose, nachdem das Herunterfahren.close()
kann nicht verwendet werden, die auf sockets in Windows, wodurch die Notwendigkeit für eine separateclosesocket()
- Funktion statt.close()
- Funktion, die bereits geschlossene Datei FDs, auch in der Nähe socket-FDs, die im BSD-sind Objekte der gleichen Art. Zehn Jahre später, Winsock, kam zusammen und mussteclosesocket()
da die Windows-socket-handles sind/waren nicht die gleiche Art von Sache, die als Windows-Datei-handles. Warum genau ist das BSD Schuld und Schande?