Ihr verbundenes Dokument ist kaputt, lassen Sie mich dennoch ein wenig erklären, wie die Netzwerk-Sockets arbeiten.
Ein Computer verfügt über mehrere Netzwerkschnittstellen. Wenn Sie Windows ausführen, können Sie sie überprüfen, indem Sie ipconfig /all
unter Linux/OSX mit ifconfig
ausführen. Sie sehen, dass Sie eine Loopback-Schnittstelle mit der IP-Adresse 127.0.0.1 haben. Aus Bequemlichkeit wurde auch beschlossen, dieser Loopback-Schnittstelle einen "Namen" hinzuzufügen, und es wäre localhost
. Sie können dies in /etc/hosts
Datei überprüfen, wo eine Zuordnung zwischen 127.0.0.1 und localhost existiert.
Sagen, dass ein Computer mit dem Systemkernel eine Route zu localhost auf sich selbst finden kann. Diese Loopback-Schnittstelle ist virtuell und wird im Betriebssystem implementiert, sodass keine Pakete über Ihre Ethernet-Schnittstelle oder WLAN-Karte übertragen werden.
TCP und UDP sind Protokolle, die über IP zum Senden von Daten verwendet werden. TCP stellt über die 3-way handshake eine Verbindung her und der Paketempfang wird vom Server quittiert. UDP ist nicht verbindungsorientiert, daher sendet ein Client Pakete an die Ports, und es werden keine Bestätigungen gesendet. Das ist nur eine große Zusammenfassung.
Wenn Sie einen Port abhören möchten, muss Ihre Anwendung dies dem Betriebssystem mitteilen und wenn die Netzwerkkomponente des Betriebssystems einige Pakete mit dem TCP.dst-Wert 6666 (in Ihrem Fall) empfängt sendet die Payload an Ihre Anwendung. Das Betriebssystem ist verantwortlich für die Bestätigung der Pakete und der gesamten darunterliegenden Kommunikation, die für Sie transparent ist.
Wie Sie sich vorstellen können, kann das Betriebssystem den gleichen Port nur an eine Anwendung binden. Wenn Sie also zweimal einen Webserver starten, schlägt die zweite Ausführung fehl.
Sie können überprüfen, welche Ports auf einem Linux-Rechner mit netstat -l
abhören.