Avatar billede hermandsen Juniormester
13. november 2006 - 09:39 Der er 7 kommentarer og
1 løsning

Modtage UDP broadcast

Hej Eksperter

Jeg forsøger at modtage nogle UDP broadcasts som sendes fra min maskine, og skal modtages på min maskine igen. De sendes via en protokol der hedder ARTNET som indholder data til lys-styring (DMX512).

Jeg har problemer med at modtage broadcasts gennem Indy 10's UDP-komponenter. Jeg kan se på Wireshark/Ethereal at der sendes UDP-broadcasts til 2.255.255.255 på port 6454. Jeg har sat mit netkort til fast IP 2.0.0.2 og subnet 255.0.0.0.

Når jeg starter min Delphi-app, sker der intet. Jeg har prøvet diverse receive-metoder, og alle de events jeg kunne komme i nærheden af på IdUDPClient og IdUDPServer, men resultatet er det samme. Metoderne laver timeout, og eventsene udføres aldrig.

Jeg tror det er noget i min opsætning af en af de to Indy-komponenter, men kan ikke finde ud af hvor.

Er der evt. nogen der ligger inde med et eksempel på modtagelse af UDP broadcasts?

//hermandsen
Avatar billede martinlind Nybegynder
13. november 2006 - 09:46 #1
prøv at sætte din IP til 2.255.255.2, jeg kan ikke helt huske det der, men der er noget med at du ikke får dem for du er "uden" for range'et
Avatar billede stoney Nybegynder
13. november 2006 - 09:49 #2
Har du sat en gateway også ved en fejl så den prøver på at route ud af huset ?

Hvorfor tester du også med en public ip adresse ?

prøv en privat ip adresse.

Stoney
Avatar billede hermandsen Juniormester
13. november 2006 - 09:59 #3
>>martinlind
Det prøver jeg...

>>stoney
Grunden til at ip'en skal starte med 2, er at ARTNET har det som konvention, and I have no idea why!! :)
Jeg kan prøve at sætte broadcast-programmet op til 10.0.0.x, men det så kan jeg ikke snakke sammen med anden DMX-software som, f.eks. ArKaos.

Jeg mangler måske at sige at jeg fint kan forbinde til ArKaos med den IP-opsætning jeg har nu.
Avatar billede hermandsen Juniormester
13. november 2006 - 10:50 #4
Det hjalp ikke at sætte ip adressen til 2.255.255.2, og heller ikke 10.0.0.2.

Det burde heller ikke være nødvendigt, for jeg kan se at det virker når ArKaos modtager pakker på ARTNET. ArKaos er til afspilning af multimedier, og kan netop trigges over ARTNET.
Avatar billede stoney Nybegynder
13. november 2006 - 11:48 #5
har du prøvet at lave din egen server og client (UDP) og se om du kan få det til
at virke.

Jeg kører ver 9 af indy og det virker fint

Stoney
Avatar billede hermandsen Juniormester
13. november 2006 - 12:15 #6
Nej, men det var selvfølgelig en start...
Det vil jeg lige forsøge ved lejlighed!
Avatar billede hermandsen Juniormester
13. november 2006 - 16:23 #7
Så er jeg kommet lidt nærmere...

Nu starter min app op og siger "Could not bind socket. Address and port are already in use."
Dog hvis jeg først starter min app op (modtageren), og bagefter sender app'en, så kommer der lynhurtigt nogle pakker ind.

Kan jeg evt. undgå at Indy's IdUDPServer forsøger at binde sig til nogle porte? Jeg har lavet en Bindings.Clear før jeg sætter den til active, men det ser ikke ud til at hjælpe...

Nogle foreslag?
Avatar billede hermandsen Juniormester
15. februar 2007 - 02:35 #8
Jeg fandt ud af at det program jeg kommunikerede med, selv blokkerede porten, og det er der tilsyneladende ikke noget at gøre ved! :(

Jeg "løste" problemet ved at starte min app først, og så senderen bagefter.

Først til porten får først malet, eller noget... :)

//hermandsen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester