UDP Socket erstellen
-
hallo alle zusammen hab ein Problem mit UDP Socket und verbindungsaufbau!
#include <stdio.h> #include <netdb.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdlib.h> #include <unistd.h> #include <arpa/inet.h> int main (int argc, const char * argv[]) { int sock; struct sockaddr_in dest_addr; /*hier wurde der UDP Socket angelegt*/ if ((sock=socket(AF_INET,SOCK_STREAM,0))==-1) { perror("couldn't create socket"); exit(1); } /*zuerst die struktur anlegen*/ memset(&dest_addr,0,sizeof(dest_addr)); dest_addr.sin_family = AF_INET; dest_addr.sin_port = htons(80); dest_addr.sin_addr.s_addr = inet_addr("217.72.204.254"); /*jetzt wird die verbindung aufgebaut*/ if(connect(sock,(sockaddr *) &dest_addr, sizeof(sockaddr))==-1) { perror("Couldn't connect to 217.72.204.254"); exit(2); } printf("hello\n"); close(sock); return 0; }
sockaddr is ndeclared, zeile mit
if(connect(sock,(sockaddr*) &dest_addr, sizeof )
wie kann ich korregieren?
-
ok habe den fehler gefunden
die zeile muss wiefolgt aussehenif(connect(sock,&dest_addr, sizeof (struct sockaddr_in))==-1)
-
wenn ci jetzt das programm starte dann erhalte ich folgende meldung
[Session started at 2007-06-15 14:53:29 +0200.]
socket_programmierung has exited with status 0.
war die verbindung erfolgreich???? wenn ja warum nur so kurz???
-
UDP ist verbindungslos!!
-
Und in deinem Source erstellst du gar keinen UDP Socket sondern einen TCP Socket. (SOCK_STREAM)
-
hast recht, ist ein TCP Socket
für UDP ist SOCK_DGRAM notwendig.