tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
754
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    harryherold harryherold ist offline Grünschnabel
    Registriert seit
    Jan 2011
    Beiträge
    1
    Hallo Leute hab da mal ein Problem zum Thema Socket-Programmierung in C.
    Ich deklariere und hol mir speicher wie folgt:

    int sock;
    ssize_t len;
    char mesg[]={'O','K'};
    struct sockaddr_in6 *server;
    server=malloc(sizeof(struct sockaddr_in6));
    len=strlen(mesg);

    dann hole ich mir einen socket

    sock = socket(AF_INET6,SOCK_DGRAM,IPPROTO_UDP);

    dann befülle ich

    memset(server,0,sizeof(server));
    server->sin6_family=AF_INET6;
    server->sin6_port=htons(4910);
    if(inet_pton(AF_INET6,"::1/128",server))
    {
    error_handler("ungueltige IP-Adresse\0");
    exit_handler();
    }

    dann das senden

    if((send_byte=sendto(sock,mesg,len+1,0,(struct sockaddr*)server,sizeof(server)))<0)
    {
    error_handler("Beim Senden ist ein Fehler aufgetreten\0");
    exit_handler();
    }


    close(sock);

    Als Fehler kommt "invaild argument"
    Wenn ich das struct statisch machen läuft es .
    Könnt ihr mir bitte weiter helfen ich bin mit meinem Latein am Ende
    Danke im Vorraus******
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Hallo harryherold und willkommen auf tutorials.de!

    Du hast mehrere Fehler gemacht:
    Zitat Zitat von harryherold Beitrag anzeigen
    char mesg[]={'O','K'};
    Dieser String ist nicht nullterminiert. Schreibe besser … = "OK";

    Zitat Zitat von harryherold Beitrag anzeigen
    if(inet_pton(AF_INET6,"::1/128",server))
    Das letzte Argument der Funktion sollte &server->sin6_addr sein, wenn ich mich nicht irre.

    Zitat Zitat von harryherold Beitrag anzeigen
    error_handler("ungueltige IP-Adresse\0");
    Zeichenkettenliterale sind bereits Nullterminiert, die \0 ist also überflüssig. Ist aber kein Fehler im eigentlichen Sinne.

    Noch ein Hinweis: Quelltext in Zukunft bitte in Code-Tags ([c]…[/c]) einschließen, das verbessert die Lesbarkeit.

    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 04.03.11, 14:18
  2. Socket Programmierung
    Von Maxii im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 13.05.09, 12:57
  3. Socket Programmierung mit C++
    Von Shooter07 im Forum Borland CBuilder und VCL
    Antworten: 2
    Letzter Beitrag: 24.04.08, 14:49
  4. Socket Programmierung
    Von marie20 im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 27.04.05, 10:46
  5. Socket-Programmierung
    Von lindin im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 06.09.04, 14:54

Stichworte