UDP-Datagramm



  • Ich versuche unter VC++ einen UDP-Broadcast übers Netz zu verschicken.
    Hab es folgendermaßen probiert:

    void CNetzwerkView::OnButton1()
    {
        CString host="255.255.255.255";
    
        CMySocket send;
         send.SendTo("RELOAD", 6, 3333, host, 0);
    }
    
    void CMySocket::OnReceive(int nErrorCode)
    {
        CAsyncSocket::OnReceive(nErrorCode);
    
        CString host="255.255.255.255";
        UINT p=3333;
        int i;
        CMySocket recv;
        char buffer[512];
        i=recv.ReceiveFrom(buffer, 512, host, p);
    }
    

    Das Programm gelangt jedoch nicht in OnReceive. 😞



  • Hat jemand ein einfaches Beispiel am besten ohne Zusätze wie Fehlerabfragen etc, aus dem ersichtlich wird. wie ich auf eienm Rechner einen Broadcast sende (z.B. einen String), den ich auf allen anderen Rechnen des Netzwerkes erhalte?





  • ....< schrieb:

    http://tangentsoft.net/wskfaq/intermediate.html#broadcast

    Hat mir nicht weitergeholfen...

    Ich sitz da jetzt seit Tagen dran aber bekomm es nicht hin, dass OnReceive aufgerufen wird.
    Wird da bei UDP nicht benutzt oder was kann das Problem sein?
    😞



  • Habs jetzt geschafft, dass OnReceive aufgerufen wird.
    Allerdings nur auf dem selben Rechner über 'localhost'.

    void CUDPView::OnButton1() 
    {
    	CMySocket sock;
    	SOCKADDR_IN addr;
    
    	addr.sin_family      = AF_INET;
    	addr.sin_port        = htons(5432);
    	addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    
    	sock.Create(5432, SOCK_DGRAM, FD_READ | FD_WRITE | FD_OOB |
    		FD_ACCEPT | FD_CONNECT | FD_CLOSE, "127.0.0.1");
    	if(sock.SendTo("test",4,(SOCKADDR*)&addr, sizeof SOCKADDR))
    		AfxMessageBox("Erfolgreich gesendet.");
    }
    

    Was muss ich machen damit ich die Anwendung auf 2 verschiedenen Rechner laufen lassen kann, und der eine reagiert, sobald der andere sendet?


Anmelden zum Antworten