Entwickler-Ecke
Internet / Netzwerk - TUdpSockUtil: Anfänger Fragen
barrais - Mo 17.03.08 12:13
Titel: TUdpSockUtil: Anfänger Fragen
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:
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
Narses - 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. :)
barrais 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
barrais - 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 - Mo 17.03.08 14:50
Moin!
barrais hat folgendes geschrieben: |
Ja, du hast recht, ein UDP-Programm war aktiviert, jetzt geht's. |
Fein. ;)
barrais 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)
barrais 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
barrais - Mo 17.03.08 14:57
Hallo Narses!
am welchen Port muss ich jetzt die Antworten von Broadcast-Nachrichten abfangen?
Danke.
Narses - Mo 17.03.08 15:02
Moin!
barrais hat folgendes geschrieben: |
am welchen Port muss ich jetzt die Antworten von Broadcast-Nachrichten abfangen? |
Narses 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
barrais - 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 - Mo 17.03.08 15:12
Moin!
barrais 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
barrais - Mo 17.03.08 15:19
Narses 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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!