Socket Programmierung- nicht deklarierte Bezeichner trotz Deklaration
-
Hallo Leute,
ich versuche mich grad an der Socket programmierung. Dazu bin ich nach diesem Tutorial vorgegangen:
https://www.youtube.com/watch?v=WaLQ7s1X6wo
Ich habe es mehr oder weniger runtergetippt. Jetzt beim kompilieren bekomme ich den Fehler, dass bspw. ADDRESS ein nichtdeklarierter Bezeichner ist, AF_INET ist nicht deklariert usw.
Hier der Code:#include "TCP_Server.h" #include "stdafx.h" using namespace std; void main() { long SUCCESSFULL; WSAData WinSockData; WORD DLLVERSION; DLLVERSION = MAKEWORD(2, 1); SOCKADDR_IN ADDRESS; int AddressSize = sizeof(ADDRESS); SOCKET sock_LISTEN; SOCKET sock_Connection; sock_Connection = socket(AF_INET, SOCK_STREAM, NULL); ADDRESS.sin_addr.s_addr = inet_addr("127.0.0.1"); ADDRESS.sin_family = AF_INET; ADDRESS.sin_port = htons(444); sock_LISTEN = socket(AF_INET, SOCK_STREAM, NULL); bind(sock_LISTEN, (SOCKADDR*)&ADDRESS, sizeof(ADDRESS)); listen(sock_LISTEN, SOMAXCONN); for (;;) { cout << "Waiting for incoming connection..."; if (sock_Connection = accept(sock_LISTEN, (SOCKADDR*)&ADDRESS, &AddressSize)) { cout << "connection was found" << endl; SUCCESSFULL = send(sock_Connection, "WELCOME", 46, NULL); } } }
Im Client sieht es ähnlich aus:
#include "TCP_Client.h" #include "stdafx.h" using namespace std; void main() { long SUCCESSFUL; WSAData WinSockData; WORD DLLVersion; DLLVersion = MAKEWORD(2, 1); SUCCESSFUL = WSAStartup(DLLVersion, &WinSockData); string RESPONSE; string CONVERTER; char MESSAGE[200]; SOCKADDR_IN ADDRESS; SOCKET sock; sock = socket(AF_INET, SOCK_STREAM, NULL); ADDRESS.sin_addr.s_addr = inet_addr("127.0.0.1"); ADDRESS.sin_family = AF_INET; ADDRESS.sin_port = htons(444); cout << "DO YOU WANT TO CONNECT TO THE SERVER? y/n"; cin >> RESPONSE; RESPONSE[0] = towlower(RESPONSE[0]); if (RESPONSE == "n") { cout << "OK. Quitting PROCESS"; } else if (RESPONSE == "y") { connect(sock, (SOCKADDR*)&ADDRESS, sizeof(ADDRESS)); SUCCESSFUL = recv(sock, MESSAGE, sizeof(MESSAGE), NULL); CONVERTER = MESSAGE; cout << "MESSAGE FROM SERVER" << endl; } else { cout << "ERROR"; } cout << "\n\n\t"; system("PAUSE"); exit(1); }
Es sind quasi alle Bezeichner nicht deklaritert, was ich mir aber nicht erklären kann. Außerdem stimmt bei der Methoden ">>" der Operator nicht mit dem Operanden überein.
Muss ich hier irgendwelche includes in den Eigenschaften einbinden einbinden?
Die Header Files sehen bei de gleich aus:
#pragma once #pragma comment (lib, "Ws2_32.lib") #include <sdkddkver.h> // #include<conio.h> #include<stdio.h> // Socket Header Files #include<WinSock2.h> #include<Windows.h> #include<iostream> #define SCK_VERSION2 0x0202
Was müsste ich denn noch beachten? Ich glaube nicht, dass der Teufel hier im Detail steckt. Ich habe evtl. einen groben Fehler gemacht, weiß aber nicht wo der liegen kann.
-
Welches ist die erste Fehlermeldung, die du bekommst?
-
Genau.
Und bitte nicht abschreiben oder gar nacherzählen - bei Fehlermeldungen ist 1:1 Copy+Paste angesagt.
(Bzw. wenn Copy+Paste einfach nicht geht dann natürlich schon abschreiben. Dann aber bitte entsprechend sorgfältig um Tippfehler o.Ä. zu vermeiden.)ps: Und um das gleich vorweg zu nehmen: Bei Fehlermeldungen ist ne englische Compiler- bzw. IDE-Version praktisch. Weil man mit den englischen Fehlermeldungen einfach mehr findet wenn man sie googelt.
-
Ich zweifle, dass C++ hier das richtige Forum ist, aber egal
Bitte ließ hier: https://msdn.microsoft.com/en-us/library/windows/desktop/ms737629(v=vs.85).aspx
P.S.: Das ging schnell, weil ich heute Morgen angefangen habe mit Winsock zu spielen, was für ein Zufall. Wobei "nicht deklariert" oft heißt mit den headern stimmt was nicht.
-
Ich poste mal hier die gesamte Fehlermeldung. Wie gesagt, ich denke, dass ich hier einen Anfängerfehler mache. Nur weiß ich dass beim besten Willen nicht. Ich bin gerade am schauen, ob nicht vllt. dlls in meinen Projektordner reinkopiert werden müssten.
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Fehler C2065 "ADDRESS": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 14 Fehler C2065 "ADDRESS": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 15 Fehler C2065 "ADDRESS": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 22 Fehler C2065 "ADDRESS": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 23 Fehler C2065 "ADDRESS": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 24 Fehler C2065 "AF_INET": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 21 Fehler C2065 "AF_INET": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 23 Fehler C2065 "AF_INET": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 26 Fehler C2065 "cout": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 32 Fehler C2065 "cout": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 34 Fehler C2065 "DLLVERSION": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 10 Fehler C2065 "DLLVERSION": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 12 Fehler C2065 "endl": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 34 Fehler C3861 "htons": Bezeichner wurde nicht gefunden. TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 24 Fehler C3861 "inet_addr": Bezeichner wurde nicht gefunden. TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 22 Fehler C3861 "listen": Bezeichner wurde nicht gefunden. TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 28 Fehler C3861 "MAKEWORD": Bezeichner wurde nicht gefunden. TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 12 Fehler C3861 "send": Bezeichner wurde nicht gefunden. TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 35 Fehler C2065 "SOCKADDR": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 27 Fehler C2065 "SOCKADDR": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 33 Fehler C2065 "SOCKADDR_IN": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 14 Fehler C3861 "socket": Bezeichner wurde nicht gefunden. TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 21 Fehler C3861 "socket": Bezeichner wurde nicht gefunden. TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 26 Fehler C2065 "SOCKET": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 17 Fehler C2065 "SOCKET": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 18 Fehler C2065 "sock_Connection": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 18 Fehler C2065 "sock_Connection": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 21 Fehler C2065 "sock_Connection": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 33 Fehler C2065 "sock_Connection": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 35 Fehler C2065 "sock_LISTEN": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 17 Fehler C2065 "sock_LISTEN": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 26 Fehler C2065 "sock_LISTEN": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 27 Fehler C2065 "sock_LISTEN": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 28 Fehler C2065 "sock_LISTEN": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 33 Fehler C2065 "SOCK_STREAM": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 21 Fehler C2065 "SOCK_STREAM": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 26 Fehler C2065 "SOMAXCONN": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 28 Fehler C2065 "WinSockData": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 9 Fehler C2065 "WORD": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 10 Fehler C2065 "WSAData": nichtdeklarierter Bezeichner TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 9 Fehler (aktiv) Kein ">>"-Operator stimmt mit diesen Operanden überein. TCP_Client c:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Client\TCP_Client.cpp 27 Fehler C2228 Links von ".sin_addr" müssen sich in einer Klasse/Struktur/Union befinden TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 22 Fehler C2228 Links von ".sin_family" müssen sich in einer Klasse/Struktur/Union befinden TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 23 Fehler C2228 Links von ".sin_port" müssen sich in einer Klasse/Struktur/Union befinden TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 24 Fehler C2228 Links von ".s_addr" müssen sich in einer Klasse/Struktur/Union befinden TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 22 Fehler C2059 Syntaxfehler: ")" TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 27 Fehler C2059 Syntaxfehler: ")" TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 33 Fehler C2143 Syntaxfehler: Es fehlt ";" vor "{" TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 33 Fehler C2146 Syntaxfehler: Fehlendes ";" vor Bezeichner "ADDRESS" TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 14 Fehler C2146 Syntaxfehler: Fehlendes ";" vor Bezeichner "DLLVERSION" TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 10 Fehler C2146 Syntaxfehler: Fehlendes ";" vor Bezeichner "sock_Connection" TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 18 Fehler C2146 Syntaxfehler: Fehlendes ";" vor Bezeichner "sock_LISTEN" TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 17 Fehler C2146 Syntaxfehler: Fehlendes ";" vor Bezeichner "WinSockData" TCP_Server C:\Users\username\Documents\Visual Studio 2015\Projects\Socket\TCP_Server\TCP_Server.cpp 9
-
Hast du bei deinem Projekt "Vorkompiliert Header verwenden" aktiviert?
Dann muß "stdafx.h" immer als erstes eingebunden werden (aber eigentlich sollte dann eine andere Fehlermeldung kommen)!
Und welche Headerdateien bindest du schon in der "stdafx" ein?Wenn du nicht weißt, wovon ich rede, dann erzeuge ein neues Projekt und deaktiviere im Wizard dann die CheckBox für "Vorkompilierte Header verwenden".
-
Vielen Dank, daran lags wohl. Wusste nicht, dass stdafx.h immer als erstes eingebunden werden muss. Sind jetzt nur nur 2-3 Fehler. Die werde ich selbst versuchen zu lösen.