gerufenes Objekt "socket" ist keine Funktion



  • Hi,

    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <arpa/inet.h>
    
    int main(void) {
    
        printf("IP-Adresse eingeben: ");
        char ip_addr[20];
        fgets(ip_addr, 20, stdin);
    
        int socket = socket(AF_INET, SOCK_STREAM, 0);
        if (socket < 0) {
            printf("Socket konnte nicht hergestellt werden.\n");
            return EXIT_FAILURE;
        }
    
        struct sockaddr_in server;
        server.sin_family = AF_INET;
        server.sin_port = htons(80); 
        server.sin_addr.s_addr = inet_addr(ip_addr);    
        if (connect(socket, (struct sockaddr*)&server, sizeof(server)) < 0) {
            printf("Verbindung konnte nicht hergestellt werden.\n");
            return EXIT_FAILURE;
        }
    
        return EXIT_SUCCESS;
    
    }
    

    Compiler (gcc) gibt die im Titel angegebene Fehlermeldung aus. Was hat das genau zu bedeuten?



  • int socket = socket(AF_INET, SOCK_STREAM, 0);
    

    Nach dem = ist socket eine lokale int -Variable und verdeckt damit die globale Funktion gleichen Namens.


Anmelden zum Antworten