Multicast Problem
-
Hallo
Ich bin grade ein wenig am rumspielen mit multicast (sockets udp)
Ich habe bei W-Lan das Problem das es öffters vorkommt das die UDP Packete gar nicht ankommen leider weis ich nicht woran das liegen könnteIn meinen Testprogramm öffne ich eine Datei und Sende die Daten an eine Multicast-Ip wenn der Client ein Packet erhalten hat schickt er ein Antwortpacket wo nur drinne steht das er das Packet erhalten hat
leider kommt es bei der Übertragung öffter vor das ein Packet nicht beim Client ankommt deshalb habe ich ein 2 Thread gemacht der wenn ein Client nicht nach 500ms antwortet das Packet erneut sendetdas ein Packet beim Client nicht ankommt passiert leider sehr offt
IP an die gesendet wird 224.0.0.1 port 55555 udp Packetgröße 32768 byte/charssetsockopt(r, SOL_SOCKET, SO_REUSEADDR, (char*)&flag_on, sizeof(flag_on)); mc_req.imr_multiaddr.s_addr = inet_addr(addresse.c_str()); mc_req.imr_interface.s_addr = htonl(INADDR_ANY); if ((setsockopt(r, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char*) &mc_req, sizeof(mc_req))) < 0) { perror("setsockopt() failed"); }
hat vieleicht jemand eine Idee woran das liegen könnte?
-
Ich vermute mal Packet-Loss weil WLan-Verbindung zu schlecht.
-
Dieser Thread wurde von Moderator/in CStoll aus dem Forum C++ (auch C++0x) in das Forum Webzeugs verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
am wlan scheint es nicht zu liegen da das Problem auch auftritt, wenn ich das mit Kabel mache auch wenn ich Sleeps von 1000ms einbaue taucht das Problem auf
-
Wenn es wichtig ist, das ein Packet ankommt, dann ist UDP das falsche Protokoll. In dem Fall ist TCP angebrachter.
-
ja aber mit tcp geht leider kein multicast
und das mehr als 50% nicht ankommen bei 2 rechnern die keine 2 meter voneinander entfernt sind sollte das eigentlich nicht so ein
-
wenn ich direkt die Packet an die Clients sende dan klappts ohne Probleme scheint irgendwie am Multicast zu liegen
-
Habe heute festgestellt, dass es klappt solange max 150 chars pro Packet genutzt werden bei 160 kommen die Packete nicht mehr sauber an woran kann das liegen das man nur so kleine packete nutzen kann?