C++ Server - Client Programm



  • Hallo,

    ich möchte ein Programm in C++ schreiben, welches eine Verbindung mit einem Serverprogramm aufbaut das ich auch selbst Programmieren möchte.

    Der Client soll Daten an den Server schicken, die der Server dann weiterverarbeiten soll, und dann zum Beispiel Daten in die lokale MSSQL Datenbank schreibt. Das ganze soll auch andersrum möglich sein, heißt der Server soll zum Beispiel aus der MSSQL Datenbank Datensätze auslesen und diese an den Client schicken können.

    Jetzt stell sich die Frage, wie stelle ich zum einem die Verbindug über das Internet(Port) her und wie überträgt man die Daten? Muss man die Daten irgendwie verschlüsseln und wenn ja wie am besten?

    Ich hoffe das man mir helfen kann.

    Gruß Niklas



  • Stichworte: Sockets, boost/SFML



  • Was sehr einfach ist ist SFML mit TCP.

    Niklasg schrieb:

    Muss man die Daten irgendwie verschlüsseln?

    Dich zwingt keiner dazu.
    Falls du es für nötig hälst, dann ja, sonst nein.



  • Danke für die schnellen Antworten.

    Wie funktioniert dieses SFML ?
    Gibt es da vielleicht ein Tutorial zu diesem Thema?

    Wie kann man den eine eigene Verschlüsselung erstellen?

    Gruß



  • Wie funktioniert dieses SFML ?
    Gibt es da vielleicht ein Tutorial zu diesem Thema?

    http://www.sfml-dev.org/ 😃





  • Niklasg schrieb:

    Wie kann man den eine eigene Verschlüsselung erstellen?

    Erklär mal kurz was du vor hast und Sinn und Zweck der Aktion.



  • @cooky451

    Der Client soll später dem Server Daten schicken, damit der Server diese in der Datenbank ändert. Es soll so gemacht werden damit der Datenbank Port nicht geöffnet werden muss. Da auch Passwöter in der Datenbank geändert werden sollen mus man diese ja auch mit übertragen, deshalb die Verschlüsselung.

    Gruß Niklas



  • Das ist zwar durchaus machbar, aber für einen Anfänger vielleicht etwas viel. C/C++ solltest du schon halbwegs können dafür und auch dann bieten sich insbesondere für die sichere Verbindung auch Fremdlibs an, wie z.B. OpenSSL, da die Implementierung einer angemessenen Verschlüsselung etc. nicht gerade trivial ist

    Edit:
    Vielleicht interessant: http://www.ibm.com/developerworks/linux/library/l-openssl/index.html



  • @ cooky451

    Ich werde es probieren ob ich es schaffe, probieren geht über studieren 😃

    @ all

    Der Tutorial Link von Q, ist leider auf C geschrieben meiner Meinung bzw. meines Visual C++ 2010. Er findet die Dateien zum Includen nicht.

    Fehlermeldung:

    network-selector.cpp(6): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "SFML/Network.hpp": No such file or directory
    

    Passende Code Zeile:

    #include <SFML/Network.hpp>
    

    Gruß Niklas



  • http://www.sfml-dev.org/tutorials/1.6/start-vc.php

    Du musst dir das Framework erst mal runterladen. 😉
    Und dann entweder die Pfade wie in dem Tutorial anpassen, oder alles aus "include" nach C:\Program Files\Microsoft Visual Studio 10.0\VC\include und die .lib Dateien nach C:\Program Files\Microsoft Visual Studio 10.0\VC\lib schieben. Visual Studio kann auch mit #pragma comment (lib, "xx.lib") linken, ansonsten musst du das so einstellen wie in dem Tutorial.
    Du könntest auch direkt Sockets nehmen:
    http://www.zotteljedi.de/socket-tipps/index.html
    http://www.c-worker.ch/tuts.php

    (Mit OpenSSL musst du das Gleiche machen, nur dass du die lib da noch selbst kompilieren musst. Alles gar nicht so einfach. ;))



  • @ cooky451

    Ich habe jetzt nach dem http://www.c-worker.ch/tuts.php Tutorial es getestet.
    Leider Kann man das Programm nicht erstellen, aber er bringt keine Fehlermeldung.

    Gruß Niklas

    Edit: Jetzt bringt er wieder eine Fehlermeldung:

    warning C4627: "#include <stdlib.h>": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
    1>          "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
    


  • Dort steht doch, wo das Problem ist - Visual Studio findet den #include für die vorcompilierten Header nicht (deren Verwendung kann man aber in den Projekteinstellungen ausschalten).



  • Habe es ausgeschaltet. Jetzt bringt er noch mehr Fehlermeldungen:

    1>------ Erstellen gestartet: Projekt: Server_neu, Konfiguration: Debug Win32 ------
    1>  Server_neu.cpp
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(91): warning C4005: 'AF_IPX': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(460): Siehe vorherige Definition von 'AF_IPX'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(131): warning C4005: 'AF_MAX': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(479): Siehe vorherige Definition von 'AF_MAX'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(168): warning C4005: 'SO_DONTLINGER': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(402): Siehe vorherige Definition von 'SO_DONTLINGER'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(212): error C2011: 'sockaddr': 'struct' Typneudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(485): Siehe Deklaration von 'sockaddr'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(390): error C2059: Syntaxfehler: 'Konstante'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(390): error C3805: 'Konstante': unerwartetes Token, es wurde entweder '}' oder ein ',' erwartet
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(524): warning C4005: 'IN_CLASSA': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(287): Siehe vorherige Definition von 'IN_CLASSA'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(530): warning C4005: 'IN_CLASSB': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(293): Siehe vorherige Definition von 'IN_CLASSB'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(536): warning C4005: 'IN_CLASSC': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(299): Siehe vorherige Definition von 'IN_CLASSC'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(547): warning C4005: 'INADDR_ANY': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(304): Siehe vorherige Definition von 'INADDR_ANY'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(549): warning C4005: 'INADDR_BROADCAST': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(306): Siehe vorherige Definition von 'INADDR_BROADCAST'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\ws2def.h(583): error C2011: 'sockaddr_in': 'struct' Typneudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(312): Siehe Deklaration von 'sockaddr_in'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(132): error C2011: 'fd_set': 'struct' Typneudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(68): Siehe Deklaration von 'fd_set'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(167): warning C4005: 'FD_SET': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(102): Siehe vorherige Definition von 'FD_SET'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(176): error C2011: 'timeval': 'struct' Typneudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(111): Siehe Deklaration von 'timeval'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(232): error C2011: 'hostent': 'struct' Typneudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(167): Siehe Deklaration von 'hostent'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(245): error C2011: 'netent': 'struct' Typneudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(180): Siehe Deklaration von 'netent'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(252): error C2011: 'servent': 'struct' Typneudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(187): Siehe Deklaration von 'servent'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(264): error C2011: 'protoent': 'struct' Typneudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(199): Siehe Deklaration von 'protoent'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(360): error C2011: 'WSAData': 'struct' Typneudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(322): Siehe Deklaration von 'WSAData'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(458): error C2011: 'sockproto': 'struct' Typneudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(494): Siehe Deklaration von 'sockproto'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(500): error C2011: 'linger': 'struct' Typneudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(531): Siehe Deklaration von 'linger'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(513): warning C4005: 'SOMAXCONN': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(544): Siehe vorherige Definition von 'SOMAXCONN'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(542): warning C4005: 'FD_READ': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(562): Siehe vorherige Definition von 'FD_READ'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(545): warning C4005: 'FD_WRITE': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(563): Siehe vorherige Definition von 'FD_WRITE'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(548): warning C4005: 'FD_OOB': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(564): Siehe vorherige Definition von 'FD_OOB'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(551): warning C4005: 'FD_ACCEPT': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(565): Siehe vorherige Definition von 'FD_ACCEPT'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(554): warning C4005: 'FD_CONNECT': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(566): Siehe vorherige Definition von 'FD_CONNECT'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(557): warning C4005: 'FD_CLOSE': Makro-Neudefinition
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(567): Siehe vorherige Definition von 'FD_CLOSE'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1578): error C2375: 'accept': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(742): Siehe Deklaration von 'accept'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1600): error C2375: 'bind': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(747): Siehe Deklaration von 'bind'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1619): error C2375: 'closesocket': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(752): Siehe Deklaration von 'closesocket'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1638): error C2375: 'connect': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(754): Siehe Deklaration von 'connect'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1659): error C2375: 'ioctlsocket': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(759): Siehe Deklaration von 'ioctlsocket'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1680): error C2375: 'getpeername': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(764): Siehe Deklaration von 'getpeername'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1701): error C2375: 'getsockname': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(769): Siehe Deklaration von 'getsockname'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1724): error C2375: 'getsockopt': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(774): Siehe Deklaration von 'getsockopt'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1745): error C2375: 'htonl': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(781): Siehe Deklaration von 'htonl'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1762): error C2375: 'htons': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(783): Siehe Deklaration von 'htons'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1780): error C2375: 'inet_addr': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(785): Siehe Deklaration von 'inet_addr'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1797): error C2375: 'inet_ntoa': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(787): Siehe Deklaration von 'inet_ntoa'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1815): error C2375: 'listen': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(789): Siehe Deklaration von 'listen'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1833): error C2375: 'ntohl': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(793): Siehe Deklaration von 'ntohl'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1850): error C2375: 'ntohs': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(795): Siehe Deklaration von 'ntohs'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1870): error C2375: 'recv': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(797): Siehe Deklaration von 'recv'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1895): error C2375: 'recvfrom': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(803): Siehe Deklaration von 'recvfrom'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1921): error C2375: 'select': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(811): Siehe Deklaration von 'select'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1945): error C2375: 'send': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(818): Siehe Deklaration von 'send'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1970): error C2375: 'sendto': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(824): Siehe Deklaration von 'sendto'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(1996): error C2375: 'setsockopt': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(832): Siehe Deklaration von 'setsockopt'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2018): error C2375: 'shutdown': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(839): Siehe Deklaration von 'shutdown'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2039): error C2375: 'socket': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(843): Siehe Deklaration von 'socket'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2063): error C2375: 'gethostbyaddr': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(850): Siehe Deklaration von 'gethostbyaddr'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2083): error C2375: 'gethostbyname': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(855): Siehe Deklaration von 'gethostbyname'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2101): error C2375: 'gethostname': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(857): Siehe Deklaration von 'gethostname'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2121): error C2375: 'getservbyport': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(861): Siehe Deklaration von 'getservbyport'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2141): error C2375: 'getservbyname': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(865): Siehe Deklaration von 'getservbyname'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2160): error C2375: 'getprotobynumber': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(869): Siehe Deklaration von 'getprotobynumber'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2178): error C2375: 'getprotobyname': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(871): Siehe Deklaration von 'getprotobyname'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2200): error C2375: 'WSAStartup': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(875): Siehe Deklaration von 'WSAStartup'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2219): error C2375: 'WSACleanup': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(879): Siehe Deklaration von 'WSACleanup'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2236): error C2375: 'WSASetLastError': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(881): Siehe Deklaration von 'WSASetLastError'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2253): error C2375: 'WSAGetLastError': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(883): Siehe Deklaration von 'WSAGetLastError'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2270): error C2375: 'WSAIsBlocking': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(885): Siehe Deklaration von 'WSAIsBlocking'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2287): error C2375: 'WSAUnhookBlockingHook': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(887): Siehe Deklaration von 'WSAUnhookBlockingHook'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2304): error C2375: 'WSASetBlockingHook': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(889): Siehe Deklaration von 'WSASetBlockingHook'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2321): error C2375: 'WSACancelBlockingCall': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(891): Siehe Deklaration von 'WSACancelBlockingCall'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2343): error C2375: 'WSAAsyncGetServByName': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(893): Siehe Deklaration von 'WSAAsyncGetServByName'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2370): error C2375: 'WSAAsyncGetServByPort': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(901): Siehe Deklaration von 'WSAAsyncGetServByPort'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2396): error C2375: 'WSAAsyncGetProtoByName': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(909): Siehe Deklaration von 'WSAAsyncGetProtoByName'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2421): error C2375: 'WSAAsyncGetProtoByNumber': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(916): Siehe Deklaration von 'WSAAsyncGetProtoByNumber'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2446): error C2375: 'WSAAsyncGetHostByName': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(923): Siehe Deklaration von 'WSAAsyncGetHostByName'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2473): error C2375: 'WSAAsyncGetHostByAddr': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(930): Siehe Deklaration von 'WSAAsyncGetHostByAddr'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2496): error C2375: 'WSACancelAsyncRequest': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(939): Siehe Deklaration von 'WSACancelAsyncRequest'
    1>c:\programme\microsoft sdks\windows\v7.0a\include\winsock2.h(2517): error C2375: 'WSAAsyncSelect': Neudefinition; unterschiedliche Bindung
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(941): Siehe Deklaration von 'WSAAsyncSelect'
    1>f:\privat\c++\server_neu\server_neu.cpp(64): error C2079: 'Connection::addr' verwendet undefiniertes struct 'sockaddr_in'
    1>f:\privat\c++\server_neu\server_neu.cpp(55): error C2440: '=': 'SOCKADDR_IN' kann nicht in 'int' konvertiert werden
    1>          Quelle oder Ziel hat einen unvollständigen Typ
    1>f:\privat\c++\server_neu\server_neu.cpp(89): error C2440: '=': 'int (__stdcall *)(SOCKET,const char *,int,int)' kann nicht in 'int' konvertiert werden
    1>f:\privat\c++\server_neu\server_neu.cpp(89): error C2440: '=': 'int (__stdcall *)(SOCKET,const char *,int,int)' kann nicht in 'int' konvertiert werden
    1>          Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
    1>f:\privat\c++\server_neu\server_neu.cpp(89): error C3861: "send": Bezeichner wurde nicht gefunden.
    1>f:\privat\c++\server_neu\server_neu.cpp(91): error C3861: "WSAGetLastError": Bezeichner wurde nicht gefunden.
    1>f:\privat\c++\server_neu\server_neu.cpp(101): error C2079: 'wsaData' verwendet undefiniertes struct 'WSAData'
    1>f:\privat\c++\server_neu\server_neu.cpp(102): error C2440: '=': 'int (__stdcall *)(WORD,LPWSADATA)' kann nicht in 'int' konvertiert werden
    1>f:\privat\c++\server_neu\server_neu.cpp(102): error C2440: '=': 'int (__stdcall *)(WORD,LPWSADATA)' kann nicht in 'int' konvertiert werden
    1>          Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
    1>f:\privat\c++\server_neu\server_neu.cpp(102): error C3861: "WSAStartup": Bezeichner wurde nicht gefunden.
    1>f:\privat\c++\server_neu\server_neu.cpp(109): error C2228: Links von ".wVersion" muss sich eine Klasse/Struktur/Union befinden.
    1>          Typ ist 'int'
    1>f:\privat\c++\server_neu\server_neu.cpp(109): error C2228: Links von ".wVersion" muss sich eine Klasse/Struktur/Union befinden.
    1>          Typ ist 'int'
    1>f:\privat\c++\server_neu\server_neu.cpp(110): error C2228: Links von ".wHighVersion" muss sich eine Klasse/Struktur/Union befinden.
    1>          Typ ist 'int'
    1>f:\privat\c++\server_neu\server_neu.cpp(110): error C2228: Links von ".wHighVersion" muss sich eine Klasse/Struktur/Union befinden.
    1>          Typ ist 'int'
    1>f:\privat\c++\server_neu\server_neu.cpp(111): error C2228: Links von ".szDescription" muss sich eine Klasse/Struktur/Union befinden.
    1>          Typ ist 'int'
    1>f:\privat\c++\server_neu\server_neu.cpp(112): error C2228: Links von ".szSystemStatus" muss sich eine Klasse/Struktur/Union befinden.
    1>          Typ ist 'int'
    1>f:\privat\c++\server_neu\server_neu.cpp(121): error C2079: 'addr' verwendet undefiniertes struct 'sockaddr_in'
    1>f:\privat\c++\server_neu\server_neu.cpp(125): error C2079: 'fdSetRead' verwendet undefiniertes struct 'fd_set'
    1>f:\privat\c++\server_neu\server_neu.cpp(127): error C2079: 'selectTimeout' verwendet undefiniertes struct 'timeval'
    1>f:\privat\c++\server_neu\server_neu.cpp(143): error C2440: '=': 'SOCKET (__stdcall *)(int,int,int)' kann nicht in 'SOCKET' konvertiert werden
    1>f:\privat\c++\server_neu\server_neu.cpp(143): error C2440: '=': 'SOCKET (__stdcall *)(int,int,int)' kann nicht in 'SOCKET' konvertiert werden
    1>          Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
    1>f:\privat\c++\server_neu\server_neu.cpp(143): error C3861: "socket": Bezeichner wurde nicht gefunden.
    1>f:\privat\c++\server_neu\server_neu.cpp(145): error C3861: "WSAGetLastError": Bezeichner wurde nicht gefunden.
    1>f:\privat\c++\server_neu\server_neu.cpp(151): error C2228: Links von ".sin_family" muss sich eine Klasse/Struktur/Union befinden.
    1>          Typ ist 'int'
    1>f:\privat\c++\server_neu\server_neu.cpp(152): error C2228: Links von ".sin_port" muss sich eine Klasse/Struktur/Union befinden.
    1>          Typ ist 'int'
    1>f:\privat\c++\server_neu\server_neu.cpp(152): error C3861: "htons": Bezeichner wurde nicht gefunden.
    1>f:\privat\c++\server_neu\server_neu.cpp(153): error C2228: Links von ".sin_addr" muss sich eine Klasse/Struktur/Union befinden.
    1>          Typ ist 'int'
    1>f:\privat\c++\server_neu\server_neu.cpp(153): error C2228: Links von ".S_un" muss sich eine Klasse/Struktur/Union befinden.
    1>f:\privat\c++\server_neu\server_neu.cpp(153): error C2228: Links von ".S_addr" muss sich eine Klasse/Struktur/Union befinden.
    1>f:\privat\c++\server_neu\server_neu.cpp(154): error C2440: '=': 'int (__stdcall *)(SOCKET,const sockaddr *,int)' kann nicht in 'int' konvertiert werden
    1>f:\privat\c++\server_neu\server_neu.cpp(154): error C2440: '=': 'int (__stdcall *)(SOCKET,const sockaddr *,int)' kann nicht in 'int' konvertiert werden
    1>          Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
    1>f:\privat\c++\server_neu\server_neu.cpp(154): error C3861: "bind": Bezeichner wurde nicht gefunden.
    1>f:\privat\c++\server_neu\server_neu.cpp(156): error C3861: "WSAGetLastError": Bezeichner wurde nicht gefunden.
    1>f:\privat\c++\server_neu\server_neu.cpp(161): error C2440: '=': 'int (__stdcall *)(SOCKET,int)' kann nicht in 'int' konvertiert werden
    1>f:\privat\c++\server_neu\server_neu.cpp(161): error C2440: '=': 'int (__stdcall *)(SOCKET,int)' kann nicht in 'int' konvertiert werden
    1>          Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
    1>f:\privat\c++\server_neu\server_neu.cpp(161): error C3861: "listen": Bezeichner wurde nicht gefunden.
    1>f:\privat\c++\server_neu\server_neu.cpp(163): error C3861: "WSAGetLastError": Bezeichner wurde nicht gefunden.
    1>f:\privat\c++\server_neu\server_neu.cpp(176): error C2027: Verwendung des undefinierten Typs "fd_set"
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(68): Siehe Deklaration von 'fd_set'
    1>f:\privat\c++\server_neu\server_neu.cpp(176): error C2227: Links von "->fd_count" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
    1>f:\privat\c++\server_neu\server_neu.cpp(181): error C2027: Verwendung des undefinierten Typs "fd_set"
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(68): Siehe Deklaration von 'fd_set'
    1>f:\privat\c++\server_neu\server_neu.cpp(181): error C2227: Links von "->fd_count" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
    1>f:\privat\c++\server_neu\server_neu.cpp(181): error C2027: Verwendung des undefinierten Typs "fd_set"
    1>          c:\programme\microsoft sdks\windows\v7.0a\include\winsock.h(68): Siehe Deklaration von 'fd_set'
    1>f:\privat\c++\server_neu\server_neu.cpp(181): fatal error C1003: Mehr als 100 Fehler gefunden; Kompilierung wird abgebrochen.
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    

    Gruß Niklas



  • Hast du <windows.h> + <winsock.h> included? Das geht nur in einer bestimmten Reihenfolge! Sonst nimm als Grundaufbau für Visual Studio mal so etwas:

    #include <stdio.h>
    #include <WinSock2.h>
    
    #pragma comment (lib, "Ws2_32.lib")
    
    int main()
    {
      WSADATA wsa;
      if (WSAStartup(WINSOCK_VERSION, &wsa) != 0)
        // Fehlerbehandlung
    
      // Rest aus Tutorial
    
      WSACleanup();
      return 0;
    }
    


  • @ cooky451

    Danke so hat es funktioniert, habe erst die WinSock2.h includet und dann die stdio.h.

    Gruß Niklas


Log in to reply