Zum Inhalt springen

udp connection ohne ip


neo336

Empfohlene Beiträge

hallo zusammen

Ich versuche in meinem Programm eine udp verbindung herzustellen ohne das ich weis welche ip das der andere client eigentlich besitzt.

oder bischen genauer gesagt:

Sobald das programm auf 2 pc's auf dem selben netzwerk läuft soll es sich automatisch miteinander verbinden.

zum testen habe ich mal einen Sender und einen Empfänger erstellt

bis jetzt habe ich das ganze mit CAsyncSocket versucht:


// Initialisierung Sender

CAsyncSocket *pSocket = new CAsyncsocket();

pSocket->Create(65501, SOCK_DGRAM);

pSocket->Send("Test", sizeof("Test"));  // mit einem timer wiederhole 

                                                      //ich das Send alle 1s


//Initialisierung Empfänger

CAsyncSocket *pSocket = new CAsyncsocket();

pSocket->Create(65501, SOCK_DGRAM);

pSocker->Listen();


// OnReceive

MessageBox("Angekommen");

wenn ich das ausführe passiert gar nichts

Kann mir vieleicht jemand einen Tip geben was ich vergessen habe zu beachten?

Danke im voraus und Freundliche grüsse

Neo336

Bearbeitet von neo336
Link zu diesem Kommentar
Auf anderen Seiten teilen

Neo336:

Du nutzt die falsche Methode: Nutze "SendTo" statt "Send" (das nutzt bei bei verbundenen TCP-Sockets).

Ohne Ziel-IP sollte SendTo automatisch an die Broadcastadresse senden - evtl. problematisch bei mehreren Interfaces..

Siehe: CAsyncSocket::SendTo

besonders der untere Abschnitt zum Thema Broadcast.

Grüße

Ripper

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielen dank

es funktioniert nun mit SendTo


int nflag = 1;

CAsyncSocket *pSocket = new CAsyncsocket();


pSocket->Create(0, SOCK,DGRAM);

pSocket->SetSockOpt(SO_BROADCAST, &nflag, sizeof(nflag, SOL_SOCKET);

pSocket->SendTo("Test", sizeof("Test"), INADDR_BROADCAST);

Freundliche grüsse

Neo336

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm irgendwas funktioniert doch noch nicht

die übertragung hat einmal geplappt aber jetzt nicht mehr

Es gibt doch ein programm das aufzeigt was alles für nachrichten im netzwerk herumschwirren..

weis vieleicht jemand wie das heisst kan mich nicht mehr an den namen erinnern..

Vielen dank

Neo336

Link zu diesem Kommentar
Auf anderen Seiten teilen

ja genau wireshark thx

also das senden funtkioniert die nachricht ist im wireshark auf dem broadcast zu sehen

also muss etwas mit der OnReceive Methode nicht stimmen.

Ich habe den Socket beim empfänger genau gleich initialisiert wie beim sender also :


int nflag = 1;

CAsyncSocket *pSocket = new CAsyncsocket();


pSocket->Create(0, SOCK,DGRAM);

pSocket->SetSockOpt(SO_BROADCAST, &nflag, sizeof(nflag, SOL_SOCKET);

und dan die OnReceive funktion hinzugefügt

CAsyncSocket::OnReceive(int nErrorCode) {

   //etc....

}

aber er kommt gar nie ins OnReceive

muss ich da noch etwas weiteres beachten?

Neo336

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab den Fehler gefunden

es lag am SendTo


SOCKADDR_IN sock;

sock.sin_family = AF_INET;

sock.sin_port = htons(nPort);

sock.sin_addr = INADDR_BROADCAST;

pSocket->SendTo(strText, sizeof(strText), (SOCKADDR*)&sock, sizeof(sock);

Freundliche grüsse und vielen dank an alle

Neo336

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...