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 aussehen

    if(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.


Anmelden zum Antworten