UDP-Nachricht an ListBox



  • Hallo,

    ich möchte eine Udp-Nachricht in einer Listbox angezeigt bekommen. Jedoch erhalte ich keine Nachricht. Was mache ich in meinem Code falsch ??

    Eingebunden sind

    #include <winsock2.h>
    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>

    und auch die Ws2_32.lib Bibliothek

    void CUDP_ConnDlg::OnOK() 
    {
    	long rc;
    	SOCKET s;
    	char buf[256];
    	int BufLen =1024;
    	SOCKET acceptSocket;
    	SOCKADDR_IN addr;
    	rc=startWinsock();
    	s =socket(AF_INET,SOCK_DGRAM,0);
    
    	if(s==INVALID_SOCKET)
    	{
    		 // MessageBox("UDP-Fehler");
    		 CString abc;
    		 abc.Format("%d", WSAGetLastError());
    		 MessageBox("Fehler",abc);
    
    	}
    	else
    	{
    		MessageBox("Socket erstellt!\n","Socket Gestartet");
    	}
    	int bind (SOCKET s, SOCKADDR* name, int namelen);
    
    	struct sockaddr_in
    	{
    	    short sin_family;
    	    unsigned short sin_port;
    	    struct in_addr sin_addr;
    	    char sin_zero[8];
    	};
    	memset(&addr,0,sizeof(SOCKADDR_IN));
    	addr.sin_family=AF_INET;
    	addr.sin_port=htons(12345);
    	addr.sin_addr.s_addr=INADDR_ANY;
    	//rc=bind(acceptSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));
    	if(rc==SOCKET_ERROR)
    	{
    	  MessageBox("Fehler: bind, fehler code: %d\n");
    	}
    	else
    	{
    	  MessageBox("Socket an port 12345 gebunden\n");
    	}
    	//rc=recvfrom(s,buf,256,0,(SOCKADDR*)&remoteAddr,&remoteAddrLen);
    	int a=0;
    	while (a<2) //(rc>-1)
    	{
    
    		a=a+1;
    		//rc=recv(s,buf,256,0);
    		  //rc=recvfrom(s,buf,256,0,(SOCKADDR*)&remoteAddr,&remoteAddrLen);
    		//rc=sendto(s,buf,5,0,(SOCKADDR*)&addr,BufLen);
    		rc=recvfrom(s,buf,256,0,(SOCKADDR*)&addr,&BufLen);
    		m_List.AddString(buf);
    
    	}
    
    	// Close the socket when finished receiving datagrams
    
      closesocket(s);
    }
    

Anmelden zum Antworten