Fehlermeldung bei meinen Socket "Startversuchen"



  • Ich verstehe nicht genau, was ihm mit const nicht passt?!

    Compiling: /home/andi/C++ Projektordner/server.cpp
    /home/andi/C++ Projektordner/server.cpp:4: warning: extra tokens at end of #include directive
    /home/andi/C++ Projektordner/server.cpp: In function ‘int main()’:
    /home/andi/C++ Projektordner/server.cpp:40: error: cannot convert ‘sockaddr_in*’ to ‘const sockaddr*’ for argument ‘2’ to ‘int connect(int, const sockaddr*, socklen_t)’
    Process terminated with status 1 (0 minutes, 0 seconds)
    1 errors, 1 warnings

    //
    
    int main()
    {
        int s = socket(AF_INET, SOCK_STREAM, 0);
        if(s == -1)
        {
            perror("BAD");
        }
    
        struct sockaddr_in address;
    
        address.sin_addr.s_addr = inet_addr("127.0.0.1");;
        address.sin_port = htons(80);
        address.sin_family = AF_INET;
    
        if (connect(s, &address, sizeof(address)) == -1)
        {
            perror("connect() failed");
        }
    
        return 0;
    }
    

    Gruß



  • Das hat nichts mit dem const zu tun. Ich mach mal ein Highlight, damit klar wird, was das Problem ist

    "‘sockaddr**_in***’ to ‘const sockaddr*’"

    Du musst das ganze einfach nur casten (sockaddr const*)&address .

    btw. die 25 Leerzeilen hättest du dir sparen können und lieber die Zeilennummer in der Fehlermeldung angepasst. Dann wäre dein Posting besser zu lesen 🙄.


Anmelden zum Antworten