Stdin2tcp

Aus open7x0.org

Wechseln zu: Navigation, Suche

Datei: /usr/bin/stdin2tcp

Das eigens von Lemmi für die M740AV entwickelte Kommando stdin2tcp ermöglicht es, Streams der Box im Netzwerk via TCP/IP verfügbar zu machen. stdin2tcp leitet dabei die Standardeingabe an alle angemeldeten TCP-Clients weiter.

Inhaltsverzeichnis

Aufruf

Bei Aufruf ohne Angabe von Parametern erfolgt die 'usage'-Ausgabe:

*** stdin2tcp V1.03 - Dirk Clemens - 2006-09-04 ***

usage: stdin2tcp [options] port
   -b n : buf size, 0..1024 KiB
   -s   : send output to stdout too
   -f   : follow appended data (like tail -f)
   -q   : quiet        (log level=0)
   -v   : verbose      (log level=2)
   -V   : more verbose (log level=3)
   port : TCP/IP port, 1..65535

Durch die Option '-b' kann ein globaler Buffer (Größe in KiB) angelegt werden, indem die letzten Daten der Eingabe zwischengelagert werden. Bei einem Verbindungsaufbau werden dann zuerst diese Daten gesendet.

Durch die Option -f wird die Standardeingabe nicht beim Erreichen des Dateiendes geschlossen. Stattdessen wird auf die Vergrößerung der Datei gewartet. Dieses funktioniert ähnlich wie 'tail -f'.

Bei Verwendung der Option -s wird die Ausgabe zusätzlich an stdout weitergeleitet, ähnlich wie 'tee'.

Der Server speichert sonst keine Daten zwischen. Sollte ein Client die Daten nicht schnell genug entgegen nehmen, dann können Daten verloren gehen. In diesem Fall erfolgt keine Nachricht an den Client.

Ein angemeldeter Client kann durch das Senden von EOT (CTRL-D, ASCII 4) den Server zum Beenden der Verbindung auffordern. Dazu muß das Zeichen alleinig oder gefolgt von CR oder LF gesendet werden. Alle anderen Daten werden vom Server eingelesen und ignoriert.

Programmquelle

Das Programm ist in C geschrieben. Die Quellen des Programmes sind im SVN abgelegt:

Das Programm wurde mit dem alten toolchain übersetzt.

Benötigte Firmware

Das Programm ist in Lemmis Firmware enthalten und wird für diverse Loggings verwendet. Ansonsten kann es auf allen Firmware-Versionen mit telnet-Zugang verwendet werden.

Tips

Auf einem Unix-System (also auch auf der M740AV) kann man mit bash und awk die Ausgabe mit einem Zeitstempel ergänzen und auf dem Bildschirm verfolgen:

awk '{print strftime("%T ") $0}' </dev/tcp/m740av/12001

'm740av' ist der DNS-Name der Box und kann auch durch eine IP-Adresse ersetzt werden.

Kommandos in »Lemmis Firmware« 

Verwendete Ports

In der VDR Firmware werden die folgenden Ports verwendet:

In der Lemmi-Firmware werden die folgenden Ports verwendet:

Persönliche Werkzeuge