2012-07-01 15 views
6

ich auf Ubuntu den folgenden Befehl leite:Warum hört auf Port mit Netcat nicht funktioniert

nc -l -p 5004 -v >> /home/anders/Dropbox/netcatFiles/test 

, die einen Befehl es bei 5004.

hören zu machen enthält Ich bin ein RTP-Stream zu senden Port 5004 mit VLC zu portieren. Wenn ich die Loopback-Schnittstelle in Wireshark beobachte, bemerke ich ICMP-Pakete mit der Meldung 'Destination unreachable'.

Öffnen eines anderen VLC und sagen, es die eingehenden Daten an Port 5004 abzuspielen, alles funktioniert, und der Stream wird abgespielt.

Was soll ich tun, damit Netcat an Port 5004 hört?

Antwort

11

Ich glaube, Sie müssen den Parameter "-u" hinzufügen, um es auf UDP machen zu hören.

Standardmäßig arbeitet netcat im TCP-Modus, das RTP-Protokoll ist jedoch UDP-basiert.

„Das Transmission Control Protocol (TCP), obwohl standardisiert für RTP verwenden, [5] normalerweise nicht in RTP-Anwendung verwendet, da TCP Zuverlässigkeit über Pünktlichkeit begünstigt. Stattdessen wird die Mehrheit der RTP Implementierungen gebaut auf dem User Datagram Protocol (UDP)“

http://en.wikipedia.org/wiki/Real-time_Transport_Protocol

+0

Danke! Folgendes funktioniert: nc -u -l -p 5004 -v >>/home/anders/Dropbox/netcatFiles/test –

+1

Ich habe einen schnellen Check, und Harald Brinkhof hat Recht. "-l -p 5004" sollte nicht funktionieren. Ich vermute, du hast eine alte Version von netcat. Die eine, die ich habe, die Ihre -p 5004-Syntax unterstützt, meldet Version 1.10, während auf einer anderen Box ich eine Version habe, die neuer aussieht (mehr Optionen, etc.), die dieselbe manuelle Seite Harald zitiert. – LSerni

6

verwenden -p nicht (man nc (1))

-p Gibt den Quellport source_port nc sollte vorbehaltlich Privileg Einschränkungen und Verfügbarkeit nutzen. Es ist ein Fehler, diese Option in der Junction mit der Option -l zu verwenden.

so geben Sie einfach

nc -l 5004 -v >> /home/anders/Dropbox/netcatFiles/test 
+0

Allerdings, wenn ich den obigen Befehl tat es hat nicht funktioniert. Status: Warnung: Inverse Namenssuche fehlgeschlagen für '0.0.19.140 ' und wenn ich mache: nc -u -l -p 5004 -v >>/home/andere/Dropbox/netcatFiles/test es funktioniert. Ich bekomme den Status: Empfangenes Paket von 127.0.0.1:32843 -> 127.0.0.1:5004 (lokal) –

+0

Ich getestet mit 'nc -l 5004 >> output.txt' für den Hörer und' Echo "Tester" | nc 127.0.0.1 5004' für den Absender. Arbeitete gut, obwohl es den Host für den Absender benötigt. –

+0

Danke für Ihre Antwort und Ihren Kommentar !! Basierend auf Isernis neuesten Kommentar und einige Recherchen, die ich nach dem Erhalt gemacht: Das Handbuch, das Sie verknüpft, und meine Version von NC, scheint für eine alte Version von NC zu sein. Das Handbuch liest: nc -l -p port [-options] [hostname] [port] –