Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Upnp / Socket
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 849
Herkunft: Oerlinghausen/NRW

Themenstarter:

Upnp / Socket

beantworten | zitieren | melden

Hallo,

ich habe ein Problem mit dem Empfang eines UPNP / SSDP Packetes.


IPEndPoint endPoint = new IPEndPoint(IPAddress.Broadcast, 1900);
            

            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
            s.Connect(endPoint);
            int length = 0;
            byte[] buffer = new byte[10000];
            while (true)
            {
                 
                   length = s.Receive(buffer);

                    string resp = Encoding.ASCII.GetString(buffer, 0, length).ToLower();

                    string sendedString = Encoding.Default.GetString(buffer);

                Debug.WriteLine(sendedString);
                
            }

Das Problem ist, es kommt nichts an. Firewall habe ich schon ausgeschlossen. Und wireshark sagt auch das das Packet ankommt. Vielleicht ist das Problem das das Packet als Ziel 239.255.255.250 was != meiner Ip ist. Ist wohl eine Broadcast adresse. Würde mich über jeden Hinweis freuen

Grüße

Jan
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von unconnected am .
private Nachricht | Beiträge des Benutzers
7.e.Q
myCSharp.de - Member

Avatar #avatar-3402.jpg


Dabei seit:
Beiträge: 925
Herkunft: Scheeßel

beantworten | zitieren | melden

Laut http://de.wikipedia.org/wiki/Simple_Service_Discovery_Protocol ist die angegebene IP Adresse die Multicast-Adresse dieses Services. Bin mir gerade nicht sicher, muss man einem Lauscher explizit mitteilen, dass er Multicast-Pakete empfangen soll?

Schau dich mal beim Thema Multicast um! Da wirst du, denke ich, fündig.
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 849
Herkunft: Oerlinghausen/NRW

Themenstarter:

beantworten | zitieren | melden

Werde dem nachgehen und Berichten :) Danke!
private Nachricht | Beiträge des Benutzers
Corpsegrinder
myCSharp.de - Member



Dabei seit:
Beiträge: 401

beantworten | zitieren | melden

Zitat von 7.e.Q
Bin mir gerade nicht sicher, muss man einem Lauscher explizit mitteilen, dass er Multicast-Pakete empfangen soll?

Ja, du musst der Multicast Gruppe beitreten, bevor du die Daten empfangen kannst, ansonsten wäre es ja ein normaler Broadcast ;-).

Hier sollte eigentlich alle stehen, was du wissen musst:

http://www.codeproject.com/KB/IP/multicast.aspx


Gruß

Dario
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 849
Herkunft: Oerlinghausen/NRW

Themenstarter:

beantworten | zitieren | melden

Danke Leute,

7.e.q hat mich schon auf die richtige fährte geschickt, und Corpsegrinder hat mir dann auch noch die Lösung frei Haus geliefert.

So läufts:



Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            s.Bind(new IPEndPoint(IPAddress.Any,1900));
            s.SetSocketOption(SocketOptionLevel.IP,SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.255.255.250"),IPAddress.Any));
            
            int length = 0;
            byte[] buffer = new byte[10000];
            while (true)
            {
                 
                   length = s.Receive(buffer);

                    string resp = Encoding.ASCII.GetString(buffer, 0, length).ToLower();

                    string sendedString = Encoding.Default.GetString(buffer);

                Debug.WriteLine(sendedString);
                
            }

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von unconnected am .
private Nachricht | Beiträge des Benutzers