#pragma once #include #include #include "in_socket.h" #include #include #include namespace Inside { const int MAX_PORT = 65535; const std::string ADDRESS_LOCAL_IP = "127.0.0.1"; enum AddressStatus { ADDRESS_VALID, ADDRESS_INVALID }; enum PredefinedAddress { ADDRESS_LOCAL }; class InternetAddress { AddressStatus mStatus; sockaddr_in maddress; bool CheckAndSetIPAndPort(std::string ip_and_port); bool CheckAndSetIP(std::string ip); bool CheckAndSetPort(std::string port); bool BreakUpIPAndPortString(const std::string & ip_and_port, std::string & just_the_ip, std::string & just_the_port); bool IsStringNumber(const std::string & the_string); public: InternetAddress(); InternetAddress(PredefinedAddress address, int port, SocketDomain domain = ADDRESS_INTERNET); InternetAddress(std::string ip_and_port, SocketDomain domain = ADDRESS_INTERNET); InternetAddress(std::string ip, std::string port, SocketDomain domain = ADDRESS_INTERNET); InternetAddress(std::string ip, int port, SocketDomain domain = ADDRESS_INTERNET); InternetAddress(int octet_one, int octet_two, int octet_three, int octet_four, int port, SocketDomain domain = ADDRESS_INTERNET); bool isValid(); std::string GetIP(); int GetPort(); std::string GetErrorString(); AddressStatus GetStatus(); }; } // namespace Inside ----- Build started: Project: inside_sockets, Configuration: Debug Win32 ------ Compiling... in_socket.cpp d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(37) : error C2146: syntax error : missing ')' before identifier 'address' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(37) : error C2146: syntax error : missing ';' before identifier 'address' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(37) : error C2460: 'Inside::InternetAddress::PredefinedAddress' : uses 'Inside::InternetAddress', which is being defined d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(27) : see declaration of 'Inside::InternetAddress' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(37) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(37) : error C2062: type 'int' unexpected d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(38) : error C2146: syntax error : missing ')' before identifier 'ip_and_port' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(38) : error C2146: syntax error : missing ';' before identifier 'ip_and_port' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(38) : error C2838: 'string' : illegal qualified name in member declaration d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(38) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(38) : error C2146: syntax error : missing ';' before identifier 'domain' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(38) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(38) : error C2065: 'ADDRESS_INTERNET' : undeclared identifier d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(38) : error C2059: syntax error : ')' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(38) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(38) : error C2864: 'Inside::InternetAddress::domain' : only static const integral data members can be initialized within a class d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C2146: syntax error : missing ')' before identifier 'ip' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C2146: syntax error : missing ';' before identifier 'ip' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C2838: 'string' : illegal qualified name in member declaration d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C2146: syntax error : missing ';' before identifier 'port' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C2886: 'std::string' : symbol cannot be used in a member using-declaration c:\program files\microsoft visual studio 8\vc\include\xstring(2090) : see declaration of 'std::string' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C2146: syntax error : missing ';' before identifier 'domain' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C2059: syntax error : ')' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(39) : error C2864: 'Inside::InternetAddress::domain' : only static const integral data members can be initialized within a class d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(40) : error C2146: syntax error : missing ')' before identifier 'ip' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(40) : error C2146: syntax error : missing ';' before identifier 'ip' d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(40) : error C2838: 'string' : illegal qualified name in member declaration d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(40) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(40) : error C2062: type 'int' unexpected d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(41) : error C2062: type 'int' unexpected d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.h(41) : error C2238: unexpected token(s) preceding ';' InternetAddress.cpp d:\rollout\inside sockets\inside_sockets\inside_sockets\internetaddress.cpp(80) : error C2593: 'operator =' is ambiguous c:\program files\microsoft visual studio 8\vc\include\xstring(885): could be 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(_Elem)' with [ _Elem=char, _Traits=std::char_traits, _Ax=std::allocator ] c:\program files\microsoft visual studio 8\vc\include\xstring(880): or 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(const _Elem *)' with [ _Elem=char, _Traits=std::char_traits, _Ax=std::allocator ] while trying to match the argument list '(std::string, int)' Generating Code... Build Time 0:02 Build log was saved at "file://d:\rollout\inside sockets\inside_sockets\inside_sockets\Debug\BuildLog.htm" inside_sockets - 35 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========