009
07.05.2006, 22:34 Uhr
chw1234
|
Hallo,
ich möchte eine Udp-Nachricht in einer Listbox angezeigt bekommen. Die MessageBox gibt noch folgendes aus: "Socket erstellt!" und als zweites "Socket an port 12345 gebunden". Ich erhalte jedoch keine Nachrichten. Wer kann mir helfen ??
Eingebunden sind
#include <winsock2.h> #include <windows.h> #include <stdio.h> #include <stdlib.h>
und auch die Ws2_32.lib Bibliothek
C++: |
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); }
|
Dieser Post wurde am 07.05.2006 um 22:35 Uhr von chw1234 editiert. |