„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich mit der Java -Socket -API zuverlässig geschlossene Fernverbindungen erkennen?

Wie kann ich mit der Java -Socket -API zuverlässig geschlossene Fernverbindungen erkennen?

Gepostet am 2025-03-25
Durchsuche:992

How Can I Reliably Detect Closed Remote Connections Using the Java Socket API?

Java Socket API: Identifizierung geschlossener Verbindungen

Ermittlung des Status von Remote -Verbindungen kann eine Herausforderung mit der Java -Socket -API sein. Im Gegensatz zu isconnected () und isclosed (), die nur den örtlichen Zustand des Sockels widerspiegeln, ist es nicht einfach zu ermitteln, ob die Verbindung von der Remote -Partei abgetrennt wurde. Hier sind einige Ansätze:

    Datenaustausch:
  1. versucht, Daten in den Ausgabestream zu schreiben und die Ausnahme zu erfassen, die sie ausgelöst hat, kann eine geschlossene Verbindung anzeigen. Dieser Ansatz sendet jedoch ständig unnötigen Verkehr und ist nicht ideal.
  2. blockieren Eingabe/Ausgabe:
  3. Wenn eine Verbindung ordentlich geschlossen ist, blockieren Blockiervorgänge wie Readline () oder Read () vorhersehbare Werte (-1 oder null). Leider ist diese Methode möglicherweise nicht rechtzeitig, wenn die Verbindung abrupt fallen gelassen wird.
  4. Lesen Sie Timeout. Wenn das Timeout vor dem Empfangen von Daten abläuft, geht die Verbindung wahrscheinlich verloren.
  5. Ungültige selectionKeys:
  6. In Java 7 und oben kann mit select () mit OP_Read geschlossene Verbindungen erkennen, wenn der zugehörige SelectionKey ungültig wird. Dieses Verhalten kann jedoch je nach Plattform und JRE -Version variieren.
  7. Denken Sie daran, dass diese Methoden nur geschlossene Verbindungen umgehend erkennen, wenn der Remote -Peer der ordnungsgemäßen Verbindungs ​​-Schließetikette folgt. Andernfalls kann die Verbindung einen halb geschlossenen Zustand eingeben und die Erkennung schwieriger machen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3