14 Stimmen

Was genau ist Port Listening?

Bedeutet "Abhören" eines Ports eine kontinuierliche Abfrage dieses Ports oder eine diskrete Abfrage oder einen interruptgesteuerten Prozess. Was genau geschieht beim "Abhören eines Anschlusses"?

11voto

Kevin Punkte 4444

A Hafen ist nichts anderes als ein Konzept Es ist nicht so, dass man einige Speicherbits überprüfen könnte und auf Informationen wartet.

Also, Abhören zu einem Hafen wird dem Kernel beibringen, was er beim Empfang von Paketen mit dieser spezifischen Portnummer tun soll : Übermittlung an den Prozess, der den Port abhören wollte, anstatt die Antwort zu geben, dass der Port nicht offen ist [oder nicht].

NB: Das sind nur Spekulationen, ich habe keine Kernel-Implementierung untersucht.

EDITAR: Auf der Prozessseite,

  • listen teilt dem Kernel mit, dass Sie sich für eine bestimmte Rendezvous-Hafen
  • (Ich bin mir nicht sicher, was zwischen listen y accept puffert der Kernel entweder die neuen Verbindungen oder weist sie zurück, bis accept aufgerufen wurde, lesen Sie bitte im entsprechenden Handbuch nach)
  • accept bindet die Verbindung an eine Kommunikationsanschluss und beginnen, die eingehenden Pakete zu puffern
  • recv (oder poll o select sicher) wird Daten aus dem Empfangspuffer abholen

7voto

ott-- Punkte 5582

Der Kernel extrahiert den Zielport aus eingehenden IP-Paketen und leitet das Paket dann an alle Empfänger weiter, die sich für diesen speziellen Port registriert haben (ja, es kann mehrere geben). Ein Benutzerprozess verwendet normalerweise select(2) oder poll(2), um auf ein Ereignis zu warten, aber dieses Polling unterscheidet sich vom traditionellen Polling wie "read I/O port; delay 500 ms".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X