Die Java Socket
Klasse verfügt über zwei Methoden isClosed
und isConnected
, um zu überprüfen, ob die Buchse geschlossen bzw. verbunden ist. Ich wollte wissen, was ist der Unterschied zwischen einem TCP-Socket, der nur offen ist, und einem TCP-Socket, das offen und verbunden ist, und wie unterscheidet es sich von UDP.Was ist der Unterschied zwischen einer Steckdose, die offen ist, und einer Steckdose, die angeschlossen ist?
Antwort
Dinge einfach auszudrücken, ein Socket
die offen ist eine Buchse, die für die Verbindung entweder warten oder mit einer anderen Socket
erfolgreich verbunden hat. Wenn ein Socket geschlossen wurde, bedeutet dies, dass dieser Socket nicht mehr für die Verbindung verfügbar ist und dass seine Ressourcen bereits freigegeben wurden. A Socket
das ist verbunden, nun, es bedeutet, dass die Steckdose mit einem anderen Socket
verbunden ist.
So eine Socket
Dose ..
- offen und zugleich verbunden sein.
- geöffnet und nicht gleichzeitig verbunden sein.
- im geschlossenen Zustand nicht angeschlossen sein.
UPDATE
von @Bryan
Offenbar gibt es halbgeschlossenen oder halboffenen Zustände für TCP Sockets; welche Verwendung (heute) unterscheidet sich von seiner ursprünglichen Bedeutung. Mehr dazu link.
Diese Seite gibt einen ziemlich guten Überblick über die Socket-Zustände: http://diranieh.com/SOCKETS/SocketStates.htm und den Unterschied zwischen TCP- und UDP-Sockets. Besonders:
- Status "Offen" (TCP und UDP): Ein unbenannter Socket wurde erstellt. Ein unbenannter Socket ist einer, der nicht an eine lokale Adresse und einen Port gebunden ist.
- Status "Verbunden" (nur TCP): Eine Zuordnung (virtuelle Verbindung) wurde zwischen einem lokalen und einem Remote-Host hergestellt. Das Senden und Empfangen von Daten ist jetzt möglich.
Beachten Sie, dass neuere Implementierungen von java.net.DatagramSocket eine Erweiterung der TCP/IP-Netzwerkzustände unterstützen: Ein Datagram kann auch im Zustand „verbunden“ sein, so dass isConnected() nicht unbedingt falsch zurück, auch obwohl ein Datagramm-Socket niemals auf der Netzwerkschicht "verbunden" ist. Insbesondere: "Wenn ein DatagramSocket mit einer Remote-Adresse verbunden ist, können Pakete nur an diese Adresse gesendet oder von ihr empfangen werden. Standardmäßig ist kein Datagramm-Socket verbunden."
- 1. Was ist der Unterschied zwischen Rohr und Steckdose?
- 2. Steckdose vs Steckdose Sammlung
- 3. Was ist der Unterschied zwischen einer Subroutine und einer Funktion?
- 4. Was ist der Unterschied zwischen einer "nonce" und einer "GUID"?
- 5. Was ist der Unterschied zwischen einer Portnummer und einer Protokollnummer?
- 6. Was ist der Unterschied zwischen einer Eigenschaft und einer Instanzvariablen?
- 7. Was ist der Unterschied zwischen einer HashMap und einer TreeMap?
- 8. Was ist der Unterschied zwischen einer Webreferenz und einer Servicereferenz?
- 9. Was ist der Unterschied zwischen `==` und `ist`?
- 10. Socket.io - Wissen, in welchem Zimmer Steckdose ist
- 11. Was ist der Unterschied zwischen:
- 12. Senden und Lesen von einer Steckdose gleichzeitig
- 13. Wie kann eine Steckdose angeschlossen und geschlossen werden?
- 14. Was ist der Unterschied zwischen einem Bündel und einer Absicht?
- 15. Was ist der Unterschied zwischen einem Benutzer und einer Rolle?
- 16. Was ist der Unterschied zwischen einer Schließung und einem Modul?
- 17. Was ist der Unterschied zwischen Panik und einer Behauptung?
- 18. Was ist der Unterschied zwischen einem Ausdruck und einer Aussage?
- 19. Was ist der Unterschied zwischen einem Adapter und einer Netzwerkschnittstelle?
- 20. Was ist der Unterschied zwischen einer Systemeigenschaft und Umgebungsvariable
- 21. Wie verbessert man die Lesefähigkeit der Steckdose?
- 22. Was ist der Unterschied zwischen einem URI und einer URL?
- 23. Was ist der Unterschied zwischen BackgroundImage und Image einer Schaltfläche?
- 24. Was ist der Unterschied zwischen einem Algorithmus und einer Funktion?
- 25. Was ist der Unterschied zwischen einer Funktion und * Funktion?
- 26. Was ist der Unterschied zwischen einem Fehler und einer Ausnahme?
- 27. Was ist der Unterschied zwischen einer Hashtable und Eigenschaften?
- 28. Was ist der Unterschied zwischen einer Sprache und einem Framework?
- 29. Was ist der Unterschied zwischen einer Ansicht und einem Stream?
- 30. Was ist der Unterschied zwischen einem Animator und einer Animation?
+1 für die Einfachheit und Klarheit –
Nicht zu verwechseln, aber TCP hat auch einen halbgeschlossenen Zustand, wo es noch eine Verbindung gibt, aber es ist jetzt unidirektional. –