Erstellen eines einfachen Chat-Servers mit Netcat
In diesem Schritt lernen Sie, wie Sie mit zusätzlichen Optionen einen robusteren Chat-Server mit Netcat erstellen können. Dieses Beispiel zeigt, wie Netcat für dauerhaftere Verbindungen eingesetzt werden kann.
Zunächst verstehen wir einige zusätzliche Netcat-Optionen, die nützlich sein werden:
-k
: Diese Option ermöglicht es dem Server, auch nach dem Trennen einer Client-Verbindung weiterhin auf neue Verbindungen zu warten, sodass mehrere Verbindungen über die Zeit hinweg möglich sind.
-v
: Dies aktiviert die ausführliche Ausgabe und liefert mehr Informationen über die Verbindung.
Erstellen wir einen Chat-Server, der auch nach dem Trennen einer Client-Verbindung weiterläuft. Im ersten Terminal:
cd ~/project
nc -l -k -v 7777
Sie sollten eine Ausgabe sehen, die anzeigt, dass Netcat auf Verbindungen wartet:
Listening on 0.0.0.0 7777
Dieser Server wird weiterlaufen und neue Verbindungen akzeptieren, auch nachdem ein Client die Verbindung getrennt hat.
Jetzt verbinden Sie sich im zweiten Terminal mit diesem Server:
cd ~/project
nc localhost 7777
Sie sollten in der ersten Terminal-Ausgabe eine Meldung sehen, die eine neue Verbindung anzeigt, ähnlich wie:
Connection from 127.0.0.1 port 7777 [tcp/*] accepted
Sie können nun wie zuvor Nachrichten zwischen den Terminals austauschen. Geben Sie in einem Terminal eine Nachricht ein und drücken Sie die Eingabetaste, um sie an das andere Terminal zu senden.
Um die Dauerhaftigkeit des Servers zu testen, trennen Sie die Client-Verbindung, indem Sie im zweiten Terminal Ctrl+C
drücken. Verbinden Sie sich dann erneut mit demselben Befehl:
nc localhost 7777
Sie sollten erneut eine Verbindung herstellen und weiter chatten können, was zeigt, dass der Server zwischen den Client-Verbindungen aktiv bleibt.
Um ein Protokoll Ihrer Chat-Konversation zu speichern, können Sie den Server-Befehl ändern, um alle eingehenden Nachrichten in einer Datei zu speichern. Drücken Sie Ctrl+C
, um den aktuellen Server zu stoppen, und starten Sie dann einen neuen Server mit Ausgabeumleitung:
cd ~/project
nc -l -k -v 7777 | tee chat_log.txt
Dieser Befehl verwendet das tee
-Werkzeug, um die eingehenden Nachrichten sowohl auf dem Bildschirm anzuzeigen als auch in die chat_log.txt
-Datei zu speichern.
Verbinden Sie sich erneut vom zweiten Terminal aus und senden Sie einige Nachrichten. Nach dem Austausch einiger Nachrichten trennen Sie die Client-Verbindung (drücken Sie Ctrl+C
im zweiten Terminal) und überprüfen dann die Chat-Protokolldatei:
cat ~/project/chat_log.txt
Sie sollten die Nachrichten sehen, die Sie vom Client-Terminal gesendet haben.
Um den Server zu stoppen, drücken Sie Ctrl+C
im ersten Terminal.
Dieser Schritt hat gezeigt, wie man mit Netcat einen robusteren Chat-Server erstellt und wie man die Kommunikation protokolliert, was für die Aufzeichnung von Informationen oder zur Fehlersuche nützlich sein kann.