Wie kann ich von Socket() belegte Adressen freigeben?



  • Hallo,

    ich muss für eine Übung ein Server und ein Client Programm schreiben die mittels Socket miteinander kommunizieren.
    Das Programm hat nach dem ersten ausführen funktioniert, jetzt bekomme ich allerdings jedes mal Fehlermeldungen, dass die Adresse schon belegt ist weil ich nicht weiß wie ich diese Adresse wieder befreien/löschen kann.

    Hier mein code:

    #include <stdio.h>
    #include <stdlib.h>
    #include <limits.h>
    #include <errno.h>
    #include <sys/ipc.h>
    #include <sys/shm.h>
    #include <sys/types.h>
    #include <sys/sem.h>
    #include <string.h>
    #include <sem182.h>

    #include <sys/types.h>
    #include <sys/socket.h>
    #include <sys/un.h>

    #define LAENGE 10;

    int main(int argc, char* argv[]){

    int temp;
    int err;
    int sock;
    socklen_t size;
    struct sockaddr foot;

    sock=socket(AF_UNIX,SOCK_STREAM,0);
    printf("%d\n",sock);
    fprintf(stderr,"Fehler: %s\n",strerror(errno));

    temp=sizeof(struct sockaddr);
    memset(&foot,0,temp);
    foot.sa_family = AF_UNIX;
    err=bind(sock,(struct sockaddr *)&foot,temp);
    printf("%d\n",err);
    fprintf(stderr,"Fehler: %s\n",strerror(errno));

    err=listen(sock,50);
    printf("%d\n",err);
    fprintf(stderr,"Fehler: %s\n",strerror(errno));

    size=sizeof(struct sockaddr);
    err=accept(sock,(struct sockaddr *)&foot, &size);
    printf("%d\n",err);
    fprintf(stderr,"Fehler: %s\n",strerror(errno));

    remove(???);

    return 0;
    }

    Was muss ich da bei remove() eingeben damit es am Schluss die Adressen wieder freigibt?

    Vielen Dank und liebe Gürße,
    Leimstein



  • Siehe shutdown(2) oder close(2). Mit den stdio-Funktionen klappts nicht




Anmelden zum Antworten