[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: nc.traditional -lup macht nach erster Ausgabe Schluss



Frank Lassowski <flassowski@gmx.de> (So 22 Jan 2012 20:14:28 CET):
> Moin!
> 
> Ich möchte gerne die aktuelle Leistung meiner PV-Anlage mit einem
> Gnome-Applet anzeigen lassen. Es existiert ein funktionierender
> Software-logger, der die entsprechenden Daten alle 5 Sekunden vom
> Wechselrichter holt. Dieser logger dient auch als UDP-Server.
> 
> Wenn ich jetzt mit 'nc' die Daten sehen möchte, dann kommt nur die erste
> Ausgabe aufs Terminal:
> 
> $ nc.traditional -luvvp 4950
> listening on [any] 4950 ...
> connect to [192.168.178.25] from raven.fritz.box [192.168.178.25] 50936
> {FB;01;6e|64:KDY=0;KMT=0;KYR=0;KT0=0;TNF=0;TKK=52;PAC=AF8;PRL=0;IL1=14B;IDC=2C7;UL1=179;UDC=230;SYS=6FAD|1ab3}
> 
> (Nach der schließenden geschweiften Klammer sendet der Server noch ein "\n")
(…)
> Was geht denn da mit 'nc' schief?

Ich vermute, daß bei Dir jedes Paket von einem anderen Port kommt, und
daß netcat möglicherweise genau damit nicht rechnet.

Wenn ich einen nc-Listener nehme, und mit 

    date | nc -u <HOST> <port>
    date | nc -u <HOST> <port>
    date | nc -u <HOST> <port>

sende, dann sehe ich auch nur das erste Datum. Wenn ich aber

    date | nc -p <fixed PORT> -u <HOST> <port>
    date | nc -p <fixed PORT> -u <HOST> <port>
    date | nc -p <fixed PORT> -u <HOST> <port>
    date | nc -p <fixed PORT> -u <HOST> <port>

nehme, dann sehe ich alles.

Mit strace beobachtet, macht netcat etwa folgendes, wenn die Verbindung
reinkommt:

    connect(3, {sa_family=AF_INET, sin_port=htons(57600), sin_addr=inet_addr("127.0.0.1")}, 16) = 0

57600 war der willkürliche Quellport des Senders.

-- 
Heiko :: dresden : linux : SCHLITTERMANN.de
GPG Key 48D0359B : 3061 CFBF 2D88 F034 E8D2 7E92 EE4E AC98 48D0 359B

Attachment: signature.asc
Description: Digital signature


Reply to: