SOCKET Hilfe ....



  • Bei visual studio 2010 express kommt folgende fehlermeldung:

    1>------ Erstellen gestartet: Projekt: hello, Konfiguration: Debug Win32 ------
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A000343) ""extern "C" int __stdcall connect(unsigned int,struct sockaddr const *,int)" (?connect@@$$J212YGHIPBUsockaddr@@H@Z)", auf das in Funktion ""public: bool __thiscall Socket::connect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)" (?connect@Socket@@$$FQAE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A00034E) ""extern "C" int __stdcall WSAStartup(unsigned short,struct WSAData *)" (?WSAStartup@@$$J18YGHGPAUWSAData@@@Z)", auf das in Funktion ""public: __thiscall Socket::Socket(void)" (??0Socket@@$$FQAE@XZ)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A000350) ""extern "C" int __stdcall recvfrom(unsigned int,char *,int,int,struct sockaddr *,int *)" (?recvfrom@@$$J224YGHIPADHHPAUsockaddr@@PAH@Z)", auf das in Funktion ""public: int __thiscall Socket::UDP_recv(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)const " (?UDP_recv@Socket@@$$FQBEHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A000355) ""extern "C" unsigned long __stdcall inet_addr(char const *)" (?inet_addr@@$$J14YGKPBD@Z)", auf das in Funktion ""public: bool __thiscall Socket::connect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)" (?connect@Socket@@$$FQAE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A00036C) ""extern "C" unsigned short __stdcall htons(unsigned short)" (?htons@@$$J14YGGG@Z)", auf das in Funktion ""public: bool __thiscall Socket::bind(int)" (?bind@Socket@@$$FQAE_NH@Z)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A000397) ""extern "C" int __stdcall sendto(unsigned int,char const *,int,int,struct sockaddr const *,int)" (?sendto@@$$J224YGHIPBDHHPBUsockaddr@@H@Z)", auf das in Funktion ""public: bool __thiscall Socket::UDP_send(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)const " (?UDP_send@Socket@@$$FQBE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0H@Z)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A000398) ""extern "C" int __stdcall WSACleanup(void)" (?WSACleanup@@$$J10YGHXZ)", auf das in Funktion ""public: void __thiscall Socket::cleanup(void)const " (?cleanup@Socket@@$$FQBEXXZ)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A000399) ""extern "C" int __stdcall recv(unsigned int,char *,int,int)" (?recv@@$$J216YGHIPADHH@Z)", auf das in Funktion ""public: int __thiscall Socket::recv(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)const " (?recv@Socket@@$$FQBEHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A00039B) ""extern "C" int __stdcall bind(unsigned int,struct sockaddr const *,int)" (?bind@@$$J212YGHIPBUsockaddr@@H@Z)", auf das in Funktion ""public: bool __thiscall Socket::bind(int)" (?bind@Socket@@$$FQAE_NH@Z)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A0003A0) ""extern "C" unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z)", auf das in Funktion ""public: bool __thiscall Socket::create(void)" (?create@Socket@@$$FQAE_NXZ)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A0003B9) ""extern "C" int __stdcall closesocket(unsigned int)" (?closesocket@@$$J14YGHI@Z)", auf das in Funktion ""public: virtual __thiscall Socket::~Socket(void)" (??1Socket@@$$FUAE@XZ)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A0003CD) ""extern "C" struct hostent * __stdcall gethostbyname(char const *)" (?gethostbyname@@$$J14YGPAUhostent@@PBD@Z)", auf das in Funktion ""public: bool __thiscall Socket::connect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)" (?connect@Socket@@$$FQAE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A0003D5) ""extern "C" int __stdcall send(unsigned int,char const *,int,int)" (?send@@$$J216YGHIPBDHH@Z)", auf das in Funktion ""public: bool __thiscall Socket::send(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)const " (?send@Socket@@$$FQBE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A0003F2) ""extern "C" int __stdcall listen(unsigned int,int)" (?listen@@$$J18YGHIH@Z)", auf das in Funktion ""public: bool __thiscall Socket::listen(void)const " (?listen@Socket@@$$FQBE_NXZ)" verwiesen wird.
    1>socket.obj : error LNK2028: Nicht aufgelöstes Token (0A0004AB) ""extern "C" unsigned int __stdcall accept(unsigned int,struct sockaddr *,int *)" (?accept@@$$J212YGIIPAUsockaddr@@PAH@Z)", auf das in Funktion ""public: bool __thiscall Socket::accept(class Socket &)const " (?accept@Socket@@$$FQBE_NAAV1@@Z)" verwiesen wird.
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall closesocket(unsigned int)" (?closesocket@@$$J14YGHI@Z)" in Funktion ""public: virtual __thiscall Socket::~Socket(void)" (??1Socket@@$$FUAE@XZ)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall bind(unsigned int,struct sockaddr const *,int)" (?bind@@$$J212YGHIPBUsockaddr@@H@Z)" in Funktion ""public: bool __thiscall Socket::bind(int)" (?bind@Socket@@$$FQAE_NH@Z)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned short __stdcall htons(unsigned short)" (?htons@@$$J14YGGG@Z)" in Funktion ""public: bool __thiscall Socket::bind(int)" (?bind@Socket@@$$FQAE_NH@Z)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall listen(unsigned int,int)" (?listen@@$$J18YGHIH@Z)" in Funktion ""public: bool __thiscall Socket::listen(void)const " (?listen@Socket@@$$FQBE_NXZ)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned int __stdcall accept(unsigned int,struct sockaddr *,int *)" (?accept@@$$J212YGIIPAUsockaddr@@PAH@Z)" in Funktion ""public: bool __thiscall Socket::accept(class Socket &)const " (?accept@Socket@@$$FQBE_NAAV1@@Z)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall WSACleanup(void)" (?WSACleanup@@$$J10YGHXZ)" in Funktion ""public: void __thiscall Socket::cleanup(void)const " (?cleanup@Socket@@$$FQBEXXZ)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall WSAStartup(unsigned short,struct WSAData *)" (?WSAStartup@@$$J18YGHGPAUWSAData@@@Z)" in Funktion ""public: __thiscall Socket::Socket(void)" (??0Socket@@$$FQAE@XZ)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z)" in Funktion ""public: bool __thiscall Socket::create(void)" (?create@Socket@@$$FQAE_NXZ)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall connect(unsigned int,struct sockaddr const *,int)" (?connect@@$$J212YGHIPBUsockaddr@@H@Z)" in Funktion ""public: bool __thiscall Socket::connect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)" (?connect@Socket@@$$FQAE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct hostent * __stdcall gethostbyname(char const *)" (?gethostbyname@@$$J14YGPAUhostent@@PBD@Z)" in Funktion ""public: bool __thiscall Socket::connect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)" (?connect@Socket@@$$FQAE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned long __stdcall inet_addr(char const *)" (?inet_addr@@$$J14YGKPBD@Z)" in Funktion ""public: bool __thiscall Socket::connect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)" (?connect@Socket@@$$FQAE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall send(unsigned int,char const *,int,int)" (?send@@$$J216YGHIPBDHH@Z)" in Funktion ""public: bool __thiscall Socket::send(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)const " (?send@Socket@@$$FQBE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall sendto(unsigned int,char const *,int,int,struct sockaddr const *,int)" (?sendto@@$$J224YGHIPBDHHPBUsockaddr@@H@Z)" in Funktion ""public: bool __thiscall Socket::UDP_send(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)const " (?UDP_send@Socket@@$$FQBE_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0H@Z)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall recv(unsigned int,char *,int,int)" (?recv@@$$J216YGHIPADHH@Z)" in Funktion ""public: int __thiscall Socket::recv(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)const " (?recv@Socket@@$$FQBEHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)".
    1>socket.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall recvfrom(unsigned int,char *,int,int,struct sockaddr *,int *)" (?recvfrom@@$$J224YGHIPADHHPAUsockaddr@@PAH@Z)" in Funktion ""public: int __thiscall Socket::UDP_recv(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)const " (?UDP_recv@Socket@@$$FQBEHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)".
    1>c:\users\max\documents\visual studio 2010\Projects\hello\Debug\hello.exe : fatal error LNK1120: 30 nicht aufgelöste externe Verweise.
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    

    bitte um hilfe 😞



  • die socket lib mitlinken, heißt: dir fehlt eine bibliothek, sie ist nicht im standard enthalten.
    (ws2_32.lib)

    wo das im studio grad geht.. irgendwo unter preferences.



  • Starte über Start/Programme/Microcsoft Visual Studio/Visual Studio Tools/Visual Studio Eingabeaufforderung

    die VS - Konsole. Navigiere in das Verzeichnis, das die Quelldateien enthält. Tippe ein:
    cl /EHsc echo_server.cpp socket.cpp ws2_32.lib
    und
    cl /EHsc echo_client.cpp socket.cpp ws2_32.lib

    das sollte Dir die exe - Dateien erst mal generieren.

    In Vs 2008 Express ist es ansonsten zu finden unter:
    Projekt / Eigenschaften / Linker / Eingabe - Zusätzliche Abhängigkeiten <-- da muß dann die ws2_32.lib hinzugefügt werden; ich vermute, daß in der 2010er Version so ähnlich gehen wird.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • danke sxchön hat geklappt ....

    allerdings schließt sich der erzeugte cillent sofort nach der ausführung?



  • Ja, er ist ja so programmiert, daß er connectet, sendet, den Socket schließt und sich beendet.
    Oder meinst Du, daß sich das Konsolenfenster nach Programmende schließt?
    Dann öffne eine Konsole (Start/Programme/Zubehör/Eingabeaufforderung), navigiere in das Verzeichnis, das die exe-Datei enthält und starte das Programm aus der Konsole durch Eingabe des Programmnamens.



  • Ich beschreibe mein fogehen ...

    server.exe und cilent.exe befinden sich im selben odrner

    ich starte server.exe --> dieser ist leer
    benutze win7 ... beim erststart von server hat er mich gefragt(firewall) ob ich zulasse das eine verbing erstellt wird ) hab zu gesagt

    ich lasse server.exe laufen
    ich starte cilent.exe ---> fenster öffnet sich und zeigt ganz kurz
    Usage: ServerAdresse an
    dann schliest sich cilent.exe wieder

    server belibt leer ?



  • der client will beim start die serverip, bei dir wohl der localhost.

    dann gibts du erst eine zeichenkette ein, die geschickt wird.

    starte den client auf konsole (win32 eingabeaufforderung), zum bleistift mit

    client.exe localhost



  • Dankeschön jetzt klapt alles : )



  • Wie startest Du client.exe? Durch Doppelklick auf das Programmicon im Ordner? Das ist falsch, mach es aus der Konsole, wie ich es Dir beschrieben habe.

    Edit: Oh ... Seite zwei übersehen ...


Anmelden zum Antworten