000
25.09.2004, 22:31 Uhr
~Schwabi
Gast
|
Hallo, hab mir grad im Inet ein Tut zu Winsock und UDP durchgelesen und dessen Code ausprobiert. Nur leider passiert da nix. Das heißt das Prog sagt mir zwar Daten gesendet (auf Localhost) aber beim empfangen krieg ich mit "WSAGetLastError()" den Fehlercode 10054 zurrück. Damit kann ich aber leider nix anfangen. Einer von euch??? Dann hab ich spaßeshalber mal "Ethreal" angeschmissen (schneidet Netzverkehr mit) un hab ma geguckt was passiert, aber wie ich so guck seh ich garnix. Mir kommts so vor als wenn mein Proggi nich wirklich was sendet.
Ich geb hier eben mal mein Code durch:
C++: |
#include <stdio.h> #include <windows.h> #include <stdlib.h>
int startWinsock(void);
int main()
{
long rc;
SOCKET s; char buf[256]; SOCKADDR_IN addr; SOCKADDR_IN remoteAddr; int remoteAddrLen=sizeof(SOCKADDR_IN);
rc=startWinsock();
if(rc!=0)
{
printf("Fehler: startWinsock, fehler code: %d\n",rc); return 1;
}
else
{
printf("Winsock gestartet!\n");
} //UDP Socket erstellen
s=socket(AF_INET,SOCK_DGRAM,0);
if(s==INVALID_SOCKET) { printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError()); return 1; } else { printf("UDP Socket erstellt!\n"); } // addr vorbereiten
addr.sin_family=AF_INET;
addr.sin_port=htons(80);
addr.sin_addr.s_addr=inet_addr("192.168.1.2"); while(1)
{
printf("Text eingeben: ");
gets(buf); rc=sendto (s,buf,strlen(buf),0,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));
if(rc==SOCKET_ERROR)
{
printf("Fehler: sendto, fehler code: %d\n",WSAGetLastError());
return 1;
}
else
{
printf("%d Bytes gesendet!\n", rc);
}
rc=recvfrom(s,buf,256,0,(SOCKADDR*)&remoteAddr,&remoteAddrLen);
if(rc==SOCKET_ERROR)
{
printf("Fehler: recvfrom, fehler code: %d\n",WSAGetLastError());
return 1;
}
else
{
printf("%d Bytes empfangen!\n", rc);
buf[rc]='\0';
printf("Empfangene Daten: %s\n",buf);
}
}
return 0;
}
int startWinsock(void){ WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa);}
|
Hoffe mir kann einer helfen.
Grüße Schwabi Dieser Post wurde am 25.09.2004 um 22:32 Uhr von FloSoft editiert. |