Ten projekt to opakowanie dla klasycznych funkcji języka C dla gniazd TCP/IP, wykorzustujące programowanie zorientowane obiektowo.
Jego celem są:
- uproszczenie procedury tworzenia (przynajmniej niezbyt skomplikowanych) aplikacji sieciowych w języku C++
- większa przenaszalność między systemami Windows i Linux
Testowane przy użyciu g++
(Linux) oraz cl.exe
(Windows 10)
SocketType
- typ gniazda (TCP lub UDP)InternetProtocol
- wersja protokołu IP (IPv4 lub IPv6)SocketDescriptor
- deskryptor gniazdabyte
- bajt (uint8_t
)SocketAddress
- struktura opisująca gniazdo- host - nazwa hosta (
std::string
) - port - numer portu (
uint16_t
)
- host - nazwa hosta (
- TransmissionControlProtocol, TCP - typ gniazda TCP
- UserDatagramProtocol, UDP - typ gniazda UDP
- IPv4 - domena dla IPv4
- IPv6 - domena dla IPv6
-
InetSocket(InternetProtocol ip, SocketType type)
- konstruktor, przyjmuje argumenty:
ip
- IPv4 lub IPv6type
- TCP lub UDP
- konstruktor, przyjmuje argumenty:
-
InetSocket(SocketDescriptor sockd)
- konstruktor wykorzystujący gotowy deskryptor gniazda do utworzenia obiektu
-
~InetSocket()
- destruktor, zamyka deskryptor gniazda
-
bool CreateSocketDescriptor()
- tworzy deskryptor gniazda
-
bool Bind(SocketAddress addr)
- wiąże gniazdo z adresem IP i portem podanymi w
addr
- wiąże gniazdo z adresem IP i portem podanymi w
-
bool Connect(SocketAddress addr)
- łączy się z zdalną usługą opisaną przez adres IP i port w
addr
- łączy się z zdalną usługą opisaną przez adres IP i port w
-
void Listen(int backlog)
- przekształca gniazdo TCP w gniazdo bierne i rozpoczyna nasłuch
-
void Close()
- zamyka gniazdo
-
InetSocket AcceptConnection(SocketAddress &ClientAddress)
- akceptuje połączenie TCP
- zwraca obiekt
InetSocket
(gniazdo klienckie)
-
bool SendBytes(const byte *data, size_t len, int flags = 0)
- wysyła bajty (
*data
) o podanym rozmiarze (len
)
- wysyła bajty (
-
int SendString(const std::string &data, int flags = 0)
- wysyła łańcuch (
std::string
)
- wysyła łańcuch (
-
int ReceiveBytes(byte *buffer, size_t len, int flags = 0)
- odbiera podaną liczbę bajtów (
len
) i zapisuje dane w buforze (*buffer
)
- odbiera podaną liczbę bajtów (
-
std::string ReceiveString(size_t len, int flags = 0)
- odbiera łańcuch znaków (
std::string
) o podanej długości (len
) - zwraca otrzymany łańcuch
- odbiera łańcuch znaków (
-
int SendBytesTo(byte *data, size_t len, SocketAddress target, int flags = 0)
- wysyła bajty (
*data
) o podanym rozmiarze (len
) do usługi opisanej przez adres IP i numer portu wtarget
- wysyła bajty (
-
int SendStringTo(const std::string &data, SocketAddress target, int flags = 0)
- wysyła łańcuch znaków (
std::string data
) do usługi opisanej przez adres IP i numer portu wtarget
- wysyła łańcuch znaków (
-
int ReceiveBytesFrom(byte *buffer, size_t len, SocketAddress &source, int flags = 0)
- odbiera podaną liczbę bajtów (
len
) i zapisuje dane w buforze (*buffer
) - zapamiętuje adres IP i numer portu źródła w
source
- odbiera podaną liczbę bajtów (
-
std::string ReceiveStringFrom(size_t len, SocketAddress &source, int flags = 0)
- odbiera łańcuch znaków (
std::string
) o podanej długości (len
) - zapamiętuje adres IP i numer portu źródła w
source
- zwraca otrzymany łańcuch
- odbiera łańcuch znaków (