TcpLib
|
Classes | |
class | AbstractMessage |
Base class for messages which can be sent, received and processed by the Tcp-classes. More... | |
class | Client |
A simple TCP client class, which should learn its know-how in the derived classes. More... | |
class | ClientReceiver |
Class that communicates with a Server via a SOCKET and delivers its receive result of type Message to its "owner", which must be a Client. You can use the method ClientReceiver::acceptMessage(AbstractMessage * pTcpMessage) to change the delivery to the "owner" in subclasses by overwriting the method. More... | |
class | DataReceiver |
Superclass for all TcpReceiver that communicate via a SOCKET and deliver their receive result, a type derived from AbstractMessage, to their "owner". Since a message can be composed (it is a stream, which may be delivered in chunks), a buffer is created here, which contains data as long as the stream is not complete. More... | |
class | Message |
Contains a data stream which can be sent and received by the Tcp classes. More... | |
class | Receiver |
Superclass for all TcpReceiver that communicate via a SOCKET and deliver their receive result to their parent object. More... | |
class | ReceiverTransmitter |
Superclass for all Receiver and Transmitter, which communicate via a SOCKET. More... | |
class | Server |
A simple TCP server class, which should learn its know-how in the derived classes. More... | |
class | ServerAcceptMessage |
A special Tcp message, with which the ServerAcceptReceiver can register a new Client. More... | |
class | ServerAcceptReceiver |
Accept-Receiver accepts new clients and registers them with its parent object (usually a Server or a subclass of it). More... | |
class | ServerMessage |
Is a special Tcp message for the Server. The socket is included so that the server knows to whom it should send the data. More... | |
class | ServerReceiver |
Class that communicates with a Client via a SOCKET and delivers its receive result of type ServerMessage to its "owner", which must be a Server. You can use the method ServerReceiver::acceptMessage(AbstractMessage * pTcpMessage) to change the delivery to the "owner" in subclasses by overwriting the method. More... | |
class | TcpMain |
Superclass for Client and Server, which 'learns' its know-how in the derived classes. More... | |
class | Transmitter |
A class that communicates with a Client or Server via a SOCKET and expects send data of type Message. More... | |
Variables | |
const std::string | sTcpVersion = "1.0.3" |
enum tcp::ActionCode |
Required for Message between client and server to indicate what is wanted.
enum tcp::ERRORS |
Error range = -10001 to -10200
For the socket errors (all from -10004 to -11004) descriptions can be found on the Internet.
For Windows Sockets e.g. under: https://msdn.microsoft.com/de-de/library/windows/desktop/ms740668%28v=vs.85%29.aspx or generally also under: https://gist.github.com/gabrielfalcao/4216897
This list is not complete!
Enumerator | |
---|---|
ERR_WSAEINTR | -10004: |
ERR_WSAEBADF | -10009: |
ERR_WSAEACCES | -10013: |
ERR_WSAEFAULT | -10014: |
ERR_WSAEINVAL | -10022: |
ERR_WSAEMFILE | -10024: |
ERR_WSAEWOULDBLOCK | -10035: |
ERR_WSAEINPROGRESS | -10036: |
ERR_WSAEALREADY | -10037: |
ERR_WSAENOTSOCK | -10038: |
ERR_WSAEDESTADDRREQ | -10039: |
ERR_WSAEMSGSIZE | -10040: |
ERR_WSAEPROTOTYPE | -10041: |
ERR_WSAENOPROTOOPT | -10042: |
ERR_WSAEPROTONOSUPPORT | -10043: |
ERR_WSAESOCKTNOSUPPORT | -10044: |
ERR_WSAEOPNOTSUPP | -10045: |
ERR_WSAEPFNOSUPPORT | -10046: |
ERR_WSAEAFNOSUPPORT | -10047: |
ERR_WSAEADDRINUSE | -10048: |
ERR_WSAEADDRNOTAVAIL | -10049: |
ERR_WSAENETDOWN | -10050: |
ERR_WSAENETUNREACH | -10051: |
ERR_WSAENETRESET | -10052: |
ERR_WSAECONNABORTED | -10053: |
ERR_WSAECONNRESET | -10054: |
ERR_WSAENOBUFS | -10055: |
ERR_WSAEISCONN | -10056: |
ERR_WSAENOTCONN | -10057: |
ERR_WSAESHUTDOWN | -10058: |
ERR_WSAETOOMANYREFS | -10059: |
ERR_WSAETIMEDOUT | -10060: |
ERR_WSAECONNREFUSED | -10061: |
ERR_WSAELOOP | -10062: |
ERR_WSAENAMETOOLONG | -10063: |
ERR_WSAEHOSTDOWN | -10064: |
ERR_WSAEHOSTUNREACH | -10065: |
ERR_WSAENOTEMPTY | -10066: |
ERR_WSAEPROCLIM | -10067: |
ERR_WSAEUSERS | -10068: |
ERR_WSAEDQUOT | -10069: |
ERR_WSAESTALE | -10070: |
ERR_WSAEREMOTE | -10071: |
ERR_WSASYSNOTREADY | -10091: |
ERR_WSAVERNOTSUPPORTED | -10092: |
ERR_WSANOTINITIALISED | -10093: |
ERR_WSAHOST_NOT_FOUND | -11001: |
ERR_WSATRY_AGAIN | -11002: |
ERR_WSANO_RECOVERY | -11003: |
ERR_WSANO_DATA | -11004: |
ERR_PARAMETER_NULL_FORBIDDEN | -10101: A, not allowed, NULL parameter was passed. |
ERR_SOCKET_ALREADY_EXISTING | -10102: A socket to be initialized already exists or is already connected. |
ERR_SOCKET_NOT_EXISTING | -10103: The expected socket does not exist. |
ERR_NO_HOSTNAME | -10104: No host name was passed as parameter. |
ERR_UNKNOWN_HOSTNAME | -10105: The host name is unknown. |
ERR_NO_PORT | -10106: No or no valid port was passed as parameter. |
ERR_ALLREADY_CONNECTED | -10107: The socket connection already exists. |
ERR_CONNECTION_BROKEN | -10108: The socket connection was interrupted. |
ERR_NO_DATASIZE | -10109: An expected data size is NULL. |
ERR_MAX_CLIENTS_TO_LOW | -10110: The maximum number of connections was not set or is 0. |
ERR_NO_SOCKETINDEX | -10111: The Server has not found a client in its client list. |
ERR_WRONG_STREAMTYPE | -10112: A received stream does not have the expected format. |
ERR_FREE_1 | -10113: |
ERR_FREE_2 | -10114: |
ERR_NO_TRANSMITTER | -10115: The Client has no Transmitter. |
ERR_NO_RECEIVER | -10116: The Server has no ServerReceiver. |
ERR_FREE_3 | -10117: |
ERR_TO_MUCH_CLIENTS | -10118: The maximum number of connections was exceeded. |
ERR_NO_CORRECT_STREAM_DATA | -10119: A received stream has incorrect data. |
ERR_NO_SERVER_MSG | -10120: Message passed as parameter is not a server message. |
ERR_TIME_OUT | -10121: The waiting time for an answer has expired (timeout). |
ERR_METHOD_FORBIDDEN | -10122: The method call is prohibited. |
ERR_GETPEERNAME_FAILED | -10123: The peername request failed. |
ERR_UNKNOWN | -10200: Unknown error. |
const std::string tcp::sTcpVersion = "1.0.3" |
The version, if new, is changed here.
The file names of the DLL or LIB file are composed of the project name + the compiler identification + the version of the library.
E.g. for Visual Studio 2015 = "$(ProjectName)$(PlatformToolset)101" as target name; if the compile target is "TCP", the name becomes "TCPv140101.dll" and "TCPv140101.lib".