So ich habe jetzt mal das UDP Tutorial von der Seite www.c-worker.ch ausprobiert mit folgendem Code
Code:
#include <windows.h>
#include <winsock.h>
#include <stdio.h>
#include <conio.h>
//Prototypen
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);
getch();
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());
getch();
return 1;
}
else
{
printf("UDP Socket erstellt!\n");
} // addr vorbereiten
addr.sin_family=AF_INET;
addr.sin_port=htons(5999);
addr.sin_addr.s_addr=inet_addr("127.0.0.1");
while(true)
{
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());
getch();
return 1;
}
else
{
printf("%d Bytes empfangen!\n", rc);
buf[rc]='\0';
printf("Empfangene Daten: %s\n",buf);
}
}
}
int startWinsock(void)
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0),&wsa);
}
Habe in einem anderen Forum gelesen das es eigentlich funktionieren soll, allerdings meckert mein Linker noch rum. Habe als Compiler
Mircosoft Visual C++ 6.0
Code:
Linker-Vorgang läuft...
Kom.obj : error LNK2001: Nichtaufgeloestes externes Symbol _recvfrom@24
Kom.obj : error LNK2001: Nichtaufgeloestes externes Symbol _sendto@24
Kom.obj : error LNK2001: Nichtaufgeloestes externes Symbol _inet_addr@4
Kom.obj : error LNK2001: Nichtaufgeloestes externes Symbol _htons@4
Kom.obj : error LNK2001: Nichtaufgeloestes externes Symbol _WSAGetLastError@0
Kom.obj : error LNK2001: Nichtaufgeloestes externes Symbol _socket@12
Kom.obj : error LNK2001: Nichtaufgeloestes externes Symbol _WSAStartup@8
Debug/Kommunika UDP.exe : fatal error LNK1120: 7 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.
Unter Einstellungen kann ich noch diverse dlls einlinken, allerdings weiß ich nicht welche, habt ihr vielleicht eine Ahnung? Eigentlich ist diese Copy & Paste geschichte nicht nach meiner Mütze aber erstens ist es in der Schulzeit noch zu stressig sich für so ein kleines Projekt damit tiefgründig ausseinander zu setzten und zweitens lernt man an einem funktionierden Code doch wesentlich einfacher.
// EDIT Man wer lesen kann ist klar im Vorteil^^ auf der Seite stand sogar die lib die ich noch einfügen muss.
So werde mich am WE mal ans testen und modifizieren machen, danke für eure Hilfe ich melde mich dann!
Mfg Matze
Lesezeichen