UDP Socket mit Raspberry 2 Jessie

Hallo ich bekomme es irgendwie nicht hin auf einem Raspberry mit Jessie mit einem UDP Socket in IPS 4 Daten zu empfangen. Hat sich da bei meiner Installation irgendwas vermurkst? Hat von Euch einer auf einem Raspberry mit Jessie einen UDP Socket laufen der funktioniert? Muss ich irgendwas spezielles auf einem Raspberry einstellen damit dies funktioniert?

Wenn ich einen UDP Socket in IP-Symcon auf einem Raspberry laufen habe und das UDP Paket direkt an die IP Adresse des Raspberry schicke dann kommt auch etwas auf dem UDP Socket an in IP-Symcon. Das Problem ist das die UDP Pakete, die ich in IP-Symcon empfangen will auf 255.255.255.255 gesendet werden. Sobald aber ein UDP Paket auf der Broadcast Adresse 255.255.255.255 gesendet wird empfange ich keine Daten mehr in IP-Symcon auf einem Raspberry. Das gleiche Datenpaket kommt auf einem IP-Symcon das auf einem Windows Rechner läuft aber an.

Moin… ich hatte keine Probleme mit UDP in Verbindung mit einem Loxone MiniServer. Hat problemlos funktioniert. Sowohl das senden, wie auch das empfangen!
Peter

Ok… hatte es mit der direkten Adresse gemacht, kein Broadcast.

Wenn Du IP-Symcon auch auf einem Raspberry laufen hast, könntest Du da mal testen ob bei einem UDP Socket, bei dem ein Paket an 255.255.255.255 gesendet wird, bei Deiner Konfiguration etwas in IP-Symcon ankommt? Zum Test senden von UDP oder TCP Paketen kannst Du z.B. Packet Sender unter Windows benutzten.

Das Verhalten von IPS ist hier auf jeden Fall nicht identisch unter Windows und Linux.

Unter Windows werden immer alle Broadcasts empfangen und unter Linux nicht, sofern als Bind-IP eine gültige IP aus einem Subnet eingetragen wurde.

Es ist aber möglich die IP per Script auf ‚255.255.255.255‘ zu setzen, und schon funktioniert es auch unter Linux.
Dennoch ist jetzt die Frage: Bug unter Windows, oder Bug unter Linux :smiley:


IPS_SetProperty(44286 /*[UDP Socket]*/,"BindIP","255.255.255.255");
IPS_ApplyChanges(44286);

Michael

:smiley: Ich weis mal wieder nicht was ich sagen soll. Danke, danke, danke.

Auf die Idee wäre ich nie gekommen. Jetzt geht es wenn man es per Script auf 255.255.255.255 setzt.
Stellt sich mir nur die Frage ist das eine Besonderheit unter Linux, bzw. kann das nicht eventuell auch so in einem Update von IPS eingestellt werden das dies von sich aus schon geht?

Noch eine Frage am Rande. Wie würdest Du vorgehen wenn Du so einen UDP Socket in einem Modul verwenden willst. Einfach ein Haken im Konfigurations Formular für Linux setzen, und dann wenn angehakt den Empfangshost auf 255.255.255.255 setzten?

Wenn ich nämlich das Script unter Windows ausführe dann meckert IP-Symcon mit


Warning:  bind: Die angeforderte Adresse ist in diesem Kontext ungültig

Es scheint hier also in der Tat ein Unterschied gemacht zu werden zwischen Windows und Linux so dass ich nicht gleich grundsätzlich den Empfangshost auf 255.255.255.255 setzten kann.

Ich würde auf einen Bugfix hoffen :smiley:
Michael

Jupp das wäre sicherlich das beste. Hoffentlich wird das gelesen ;).

Trag’ ihn in den BugTracker ein, dann wird es auf jeden Fall gesehen.
Michael

Habe ich auch in den Bug Tracker eingetragen, mal sehen was daraus wird. Zumindest kann man ja mit Deinem Workarround erst mal leben, denn dann kommen ja auch Daten auf Linux in IP-Symcon an. Ist aber zumindest nicht logisch warum dies bei einer Linux Version notwendig ist und auf Windows nicht.

Mit Pech liegt es am TCP-Stack des OS und dann kann da wohl paresy nix machen, aber (er)klären kann er das bestimmt :smiley:
Michael

Sehr gute Arbeit Nall chan!

Es hatte vorgestern bei mir auch funktioniert. Allerdings wollte ich heute nochmal reinschauen um Fonzo ein paar Daten zu geben und was soll ich sagen… Funktioniert nicht mehr… Habe momentan keinerlei Ahnung wieso, hab den Fix auch ein zweites Mal ausgeführt allerdings ohne erfolg. Habt ihr noch ne Idee?

Wie sieht das Fenster des UDP Sockets denn aus?

Steht bei Empf.-Host nichts drinnen und ist der Socket denn geöffnet?
UDP-Socket-1.png

Ich habe da zur 5.3 einiges umgebaut und denke das Problem ebenfalls behoben zu haben.

paresy