Nichtaufgeloestes externes Symbol _closesocket@4



  • // sockettest.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung.
    //
    
    #include "stdafx.h"
    #include <iostream.h>
    #include <time.h>
    #include <winsock.h>
    
    void main(int argc, char *argv[])
    {
        time_t t;
        int s;
        struct sockaddr_in a;
        struct hostent *h;
        WSADATA wsaData;
    
        if (argc != 2)
        {
            cout << "Usage: " << argv[0] << " host\n";
            exit(1);
        }
        if(WSAStartup(0x101, &wsaData))
        {
            cout << "Unable to initialize WinSock library.\n";
            exit(1);
        }
        h = gethostbyname(argv[1]);
        if (h == NULL)
        {
            cout << "Cannot resolve hostname\n";
            WSACleanup();
            exit(1);
        }
    
        a.sin_family = AF_INET;
        a.sin_port = htons(37);
        memcpy(&(a.sin_addr.s_addr), h->h_addr, sizeof(int));
        s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        if (s == 0)
        {
            cout << "Cannot establish connection: "
                 << WSAGetLastError() << '\n';
            WSACleanup();
            exit(1);
        }
        if (connect(s, (struct sockaddr *)&a, sizeof(a)))
        {
            cout << "Cannot establish connection: "
                 << WSAGetLastError() << '\n';
            WSACleanup();
            exit(1);
        }
        if (recv(s, (char *)&t, 4, 0) != 4)
            cout << "Unable to obtain time.\n";
        else
        {
            t = ntohl(t) - 2208988800;
            cout << asctime(localtime(&t));
        }
        closesocket(s);
        WSACleanup();
    }
    
    sockettest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _closesocket@4
    sockettest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _ntohl@4
    sockettest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _recv@16
    sockettest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _connect@12
    sockettest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _WSAGetLastError@0
    sockettest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _socket@12
    sockettest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _htons@4
    sockettest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _WSACleanup@0
    sockettest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _gethostbyname@4
    sockettest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _WSAStartup@8
    Debug/sockettest.exe : fatal error LNK1120: 10 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.
    
    sockettest.exe - 11 Fehler, 0 Warnung(en)
    

    woran kann das liegen? thx



  • pixartist schrieb:

    woran kann das liegen? thx

    Daran, dass du Ws2_32.lib nicht zu deinem Programm gelinkt hast. Dass du das tun must, steht übrigens in der Dokumentation jeder dieser Funktionen.


Anmelden zum Antworten