Autor Beitrag
barrais
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 17.03.08 12:13 
Hallo,
ich versuche ein Kommuniktionsprogramm zu entwicklen, das mir ermöglicht mehrere Mikrocontroller per UDP zu steuern, dazu benutze ich TUdpSockUtil von Narses.
Wenn das Programm gestartet wird, sendet es eine Broadcast-Nachricht um rauszubekommen wieviele MC's am LAN sind, das Problem ist, die Nachricht wird nicht gesendet und noch dazu kriege ich diese Exeption:

Windows-Socket-Fehler: Normalerweise darf jede Socketadresse ...nur jeweils einmal verwendet werden(10048), auf API'Bind'

der Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TFormMain.FormCreate(Sender: TObject);
begin
   UdpSockUtil1.RemotePort := 12345;
   UdpSockUtil1.LocalPort  := 12345;
   UdpSockUtil1.Open;
   UdpSockUtil1.BroadcastText('dummy');
end;


Danke


Zuletzt bearbeitet von barrais am Mo 17.03.08 14:55, insgesamt 2-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 17.03.08 13:06 
Titel: Re: TUdpSockUtil: brauche Hilfe!
Moin!

Vorab: bitte gib dem Thread einen aussagekräftigen Titel, Hilfe braucht hier fast jeder. ;) Danke. :)

user profile iconbarrais hat folgendes geschrieben:
Wenn das Programm gestartet wird, sendet es eine Broadcast-Nachricht um rauszubekommen wieviele MC's am LAN sind, das Problem ist, die Nachricht wird nicht gesendet und noch dazu kriege ich diese Exeption:

Windows-Socket-Fehler: Normalerweise darf jede Socketadresse ...nur jeweils einmal verwendet werden(10048), auf API'Bind'
Die Meldung weist darauf hin, dass du bereits einen anderen listening UDP-Socket auf diesem Port betreibst. Hast du noch einen TUdpSockUtil oder eine andere Kompo (Indy?) auf dem Port laufen?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
barrais Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 17.03.08 14:21 
Ja, du hast recht, ein UDP-Programm war aktiviert, jetzt geht's.
Aber beim senden ist der lokalport nicht gesetzt, es wird eine willkürliche Zahl verwendet(1112,1116..), obwohl ich ihn gesetzt habe.

Danke

so nebenbei: wie kann ich den thread-title ändern?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 17.03.08 14:50 
Moin!

user profile iconbarrais hat folgendes geschrieben:
Ja, du hast recht, ein UDP-Programm war aktiviert, jetzt geht's.
Fein. ;)

user profile iconbarrais hat folgendes geschrieben:
Aber beim senden ist der lokalport nicht gesetzt, es wird eine willkürliche Zahl verwendet(1112,1116..), obwohl ich ihn gesetzt habe.
Das ist in den Grenzen der Implementation der Komponente korrekt, es wird ein zufälliger Port zum Senden verwendet. Die LocalPort-Angabe ist nur für den Empfang zuständig.
(ich gestehe, ich kann mich nicht mehr richtig erinnern, warum ich das so umgesetzt habe, es hatte aber was mit dem Broadcast-Flag beim Socket-Create zu tun... :gruebel: :nixweiss: müsste ich jetzt länger forschen, was das für einen Grund hat)

user profile iconbarrais hat folgendes geschrieben:
so nebenbei: wie kann ich den thread-title ändern?
Einfach den ersten Beitrag editieren und ganz oben im Editor in der Titelzeile den Text anpassen. :idea: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
barrais Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 17.03.08 14:57 
Hallo Narses!
am welchen Port muss ich jetzt die Antworten von Broadcast-Nachrichten abfangen?
Danke.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 17.03.08 15:02 
Moin!

user profile iconbarrais hat folgendes geschrieben:
am welchen Port muss ich jetzt die Antworten von Broadcast-Nachrichten abfangen?

user profile iconNarses hat folgendes geschrieben:
es wird ein zufälliger Port zum Senden verwendet. Die LocalPort-Angabe ist nur für den Empfang zuständig.

:gruebel: :nixweiss: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
barrais Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 17.03.08 15:10 
Sorry, ich verstehe das irgendwie nicht, die gegenstelle antwortet ja zur IP-Adresse und Portnummer des Senders, und wenn die Portnummer jedesmal anders ist(wie im Broadcast der Fall ist) dann wird jedesmal zur anderen Portnummer gesendet, wo soll ich jetzt auf die Nachricht warten?
Sorry vielleicht ist die Frage blöd, ich möchte es aber gerne verstehen.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 17.03.08 15:12 
Moin!

user profile iconbarrais hat folgendes geschrieben:
die gegenstelle antwortet ja zur IP-Adresse und Portnummer des Senders,
Ahh, da ist das Problem. Du musst halt zu einer festen Portnummer zurücksenden, das ist die Lösung! :idea: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
barrais Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 17.03.08 15:19 
user profile iconNarses hat folgendes geschrieben:
Du musst halt zu einer festen Portnummer zurücksenden

Schön wär's, ich benutze aber einen Open-Source TCP/IP-Stack auf die uC's, und es wird davon abgeraten im Komplexen Source-Code was zu ändern.

Danke dir trotzdem.