?
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);
}