So nutzen Sie Netcat für mehrere Ports

So nutzen Sie Netcat für mehrere Ports

Ich verwende ein Raspberry und brauche zwei lokale Streams. Folgendes habe ich versucht:

Versuchen

raspivid <some options> -o - | tee nc localhost 5100 | nc localhost 5000

Frage

Ich kann die Ausgabe am empfangen, 5000aber nicht am 5100. Was übersehe ich?

raspivid -o -gibt den Stream an die Standardausgabe aus.

Antwort1

Nun, 'tee' akzeptiert keine Befehlsnamen – es akzeptiertDateiNamen. Sie schreiben Kopien der Ausgabe in Dateien mit den Namen nc, localhost, und 5100im aktuellen Verzeichnis.

Wenn Sie zwei Befehle ausführen möchten, prüfen Sie, ob Ihre Shell eine „Prozesssubstitution“ mit zulässt >( ... ), wobei automatisch eine Pipe als Dateiname übergeben wird:

raspivid <etc> | tee >(nc localhost 5100) | nc localhost 5000

Alternativ installieren Sie peevonmehrutils:

raspivid <etc> | pee "nc localhost 5100" | nc localhost 5000

Wenn keine dieser Optionen verfügbar ist, verwenden Sie mkfifozum Erstellen einesgenanntPipe für eine der „nc“-Instanzen, dann führen Sie die Ausgabe und die Eingabe separat aus:

mkfifo /tmp/ncpipe
nc localhost 5100 < /tmp/ncpipe &
raspivid <etc> | tee /tmp/ncpipe | nc localhost 5000

verwandte Informationen