2016-07-22 16 views
0

Kürzlich habe ich NETCAT auf meinem MAC (OSX El Capitan 10.11.5) über MacPorts (2.3.4) heruntergeladen.NETCAT TCP Server/Clientverbindung nicht offen

Ich habe einen einfachen TCP-Server mit:

nc -v -l -p 3456

Wenn ich über auf dem Server zu verbinden versucht:

nc -v localhost -p 3456

Ich würde eine Verbindung öffnen Nachricht erhalten, aber die Verbindung würde beendet, nachdem der Client verbindet. Ich dachte, die Verbindung würde offen bleiben, bis ich STRG-C drücke oder^D eintrage.

Muss ich eine Wartezeit hinzufügen, um die Verbindung auf einem MAC offen zu halten?

BTW, ein Freund versuchte die gleichen Befehle auf einer Linux-Box und es funktionierte wie erwartet.

Antwort

1

Es gibt verschiedene Implementierungen von nc (netcat), die verschiedene Optionen unterstützen und entsprechend verwendet werden müssen. Ihr Beispiel würde nicht mit dem Netcat funktionieren, das vom Mac-Betriebssystem in /usr/bin/nc bereitgestellt wird.

Wenn sich die nc unter Linux anders verhält, sollten Sie die Manpage auf beiden Systemen überprüfen, um zu bestätigen, dass die verwendeten Flags und Optionen tatsächlich für den von Ihnen beabsichtigten Zweck verwendet werden.

+0

Sie haben Recht @Raim. Ich benutze die MacPorts installiert BSD netcat 1.10 und es ist ein Fehler, die Option -l und -p zusammen zu verwenden. Ich habe netcat über HomeBrew installiert und die Befehle haben wie erwartet funktioniert, weil HomeBrew GNU netcat installiert hat. 0.7.1 – ThePhantom05

+0

GNU netcat ist auch in MacPorts im Port gnetcat verfügbar. – raimue

+0

Das habe ich gestern gesehen. Ich bin mir nicht sicher, wie ich das im Juli vermisst habe. @Raim – ThePhantom05