13. november 2006 - 09:39Der 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?
>>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.
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.
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...
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
Synes godt om
Ny brugerNybegynder
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.