Autor Beitrag
avoid
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Do 13.02.14 16:46 
Ich versuche gerade einen Viewer für Netzwerkdaten zu erstellen der mir die Daten gleich aufbereitet darstellt. Die Daten kommen von netzwerkfähigen Messgeräten.

Bisher habe ich die Daten mit WebClient von den einzelnen IPs abgerufen was die Aufbereitung extrem aufwendig machte. Vor allem kann man so immer nur ein gerät verarbeiten und nicht alle Parallel.

Da die Geräte ihre Daten auch noch live über Port 10.000 aussenden will ich nun diesen Port der Geräte belauschen und so die Daten in Echtzeit empfangen und aufbereiten.

ist dafür der TcpListener die richtige Wahl?
und wie kann ich damit Daten empfangen ohne eine feste Server/Client Verbindung her zu stellen?

Gruß,
avoid

Moderiert von user profile iconTh69: Beitragsformatierung überarbeitet.

_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 13.02.14 16:53 
Zitat:
Da die Geräte ihre Daten auch noch live über Port 10.000 aussenden


Als Broadcast einfach so ins Netz?
avoid Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Do 13.02.14 20:46 
ja ich glaube die Daten werden als Broadcast gesendet da man im Gerät keine Ziel IP eintragen kann.
aber im Originalen Empfangstool bekomm ich die Daten rein, sobald ich dort die Geräte IPs hinterlegt habe.

---nachtrag---

wie es scheint brauch ich UDP und muss dann mit BeginReceive asynchron Daten empfangen,
weil TCP immer eine Client Verbindung aufbauen muss?

_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 14.02.14 11:04 
Scheinen hilft nicht. Wenn das bei dem Gerät vorgesehen ist das man sich da ranklemmt dann sollte in der Doku beschrieben sein wie das geht.
Ich kann mir nicht vorstellen das die Daten einfach per UPD rausgehauen werden. Das Messgerät wird ja regelmäßig Daten senden und mit den daten will man nicht dauerhaft sein ganzes Netz fluten. Möglicherweise finden sich Messgerät und Client per UPD (oder einen anderen Protokoll) aber danach wird ein andere direkte Verbindung (z.B. TCP) aufgemacht.
avoid Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Fr 14.02.14 11:53 
ok.
es scheint nicht nur so sondern es ist so das die Daten als Broadcast ins lokale Netzwerk gesendet werden.
im Debuglog der Messgeräte sehe ich sogar den Eintrag das dieser oder jener zustand als Broadcast ausgesendet wurde.
z.b. "send Broadcast S1/255" und "send Broadcast S1/0" wenn ich einen schalter dran habe.

also wie fange ich so einen Brotkasten mit C# ein? ;)

_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 14.02.14 12:18 
Mit dem UpdClient. Deinem Messgerät müßtest du noch entlocken auf welchem Port es den Broadcast macht damit du weist auf welchem Port du lauschen musst.

Für diesen Beitrag haben gedankt: avoid
avoid Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Fr 14.02.14 18:51 
Super Tipp von dir Ralf!
jetzt klappt die Sache. :)

ich hab mal zwei kleine Tools zum testen gebaut und hänge beide Projekte hier mal an.

der UDP-Sender macht nix anderes als auf dem eingestellten Port den Text "Test" zu Spammen.
der UDP-Listener lauscht auf dem eingestellten Port und Zeigt an was er empfängt und woher.

Wichtig:
der UDP-Listener lässt sich nur Stoppen wenn Daten rein kommen
weil das empfangen keinen eigenen Task hat und die Oberfläche blockt.
aber diesen Schönheitsfehler kann ja jeder ausbessern den es stört.
es sind nur kleine Test Tools keine Profi Lösung.
Einloggen, um Attachments anzusehen!
_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke