Avatar billede anri Novice
12. september 2005 - 08:40 Der er 8 kommentarer og
1 løsning

Modtage broadcast.

Jeg forsøger at læse broadcasts på UDP port 8000, men UDPClient modtager ikke beskeder fra devices med IP nummer over 224.x.x.x

Jeg gør følgende:
_ListenerUDPClient = New UdpClient(8000)

Og i egen trød ligger jeg og læser alt hvad der kommer ind på porten med :
_GroupEP = New IPEndPoint(IPAddress.Broadcast, 8000)
_ListenerUDPClient.Receive(_GroupEP)

Men altså..  Jeg kan godt få broadcasts fra 223.255.255.255, men ikke 224.1.1.1

Nogen forslag til hvad jeg mangler?
Avatar billede lifo Nybegynder
12. september 2005 - 09:53 #1
skift
_GroupeEP  = IPEndPoint(IPAddress.Broadcast,8000)
ud med
_GroupeEP  = IPEndPoint(IPAddress.Any,8000)
Avatar billede anri Novice
12. september 2005 - 10:37 #2
Nej desværre var det ikke der problemet lå..

Andre forslag?
Avatar billede lifo Nybegynder
12. september 2005 - 11:36 #3
er du helt sikker på det
når ud bruger Broadcast så der det den ip som passer til dit subnet
og når du bruger Any så er det det samme som 255.255.255.255 (global)

bruger det selv og det fungerer fint 
men godt nok så bruger jeg ikke udpclient men en socket
Avatar billede anri Novice
12. september 2005 - 11:57 #4
Han jeg lokke dig til at paste en smule af din kode, så jeg kan se de ting du gør?
Avatar billede lifo Nybegynder
12. september 2005 - 20:02 #5
dette kører i en thread
(er også simplificeret lidt )

public void lytEfterKliente()
        {
            lytteSocket = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
            try
            {
                IPEndPoint iep = new IPEndPoint(IPAddress.Any,_port);
                lytteSocket.Bind(iep);
               
                while(_running)
                {
                    EndPoint ep = iep;
                    byte[] data = new byte[1500];
                    int recv = lytteSocket.ReceiveFrom(data,ref ep);
                    byte[] tmp = new byte[recv];
                    for(int i =0;i<recv;i++)
                    {
                        tmp[i]=data[i];
                    }
                    // her bliver dataene så sendt videre i min kode gennem en event
                }
            }
            catch(Exception ex)
            {
                //
            }
            finally
            {
                lytteSocket.Close();
            }
        }
Avatar billede lifo Nybegynder
12. september 2005 - 21:28 #6
laver du også den som sender ??
hvilken addresse sender du til
om du skal sende til alle så er det addresse 255.255.255.255
Avatar billede anri Novice
15. september 2005 - 12:56 #7
Ok..  Problemet lå sådan set et andet sted. IP adresserne fra 224.0.0.0 og opefter er reserverede til andre ting, så de kan ikke bruges til broadcast.

Det samme gælder 127.0.0.1 som er reserveret til loopback.

Anyway, jeg vil gerne give dig point for indsatsen som også fik rettet min ipaddress.broadcast til ipadress.any
Avatar billede anri Novice
15. september 2005 - 12:57 #8
Note til andre der vil have samme problem..
Kig her :
http://www.pantz.org/networking/tcpip/privatereserved.shtml
Avatar billede anri Novice
26. april 2006 - 10:34 #9
Svar for lukning
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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