Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

  • Autor

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

  • Autor

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

  • Autor

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

  • Autor

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.