Маленькая объектно-ориентированная библиотека сокетов только с заголовками. Поддерживает как UDP, так и TCP.
Существуют классы Socket и Connection. Вы можете наследовать класс Connection и переопределить операторы << и >> для каждого класса, который хотите передать. Классы сокетов не предназначены для прямого использования.
Существуют классы шаблонов клиентов и серверов TCP и UDP.
Вы можете использовать их со своим классом Connection.
Есть класс SocketException
Тесты для коммуникаторов Теперь есть только тесты Send/Recv
Просто наследуйте класс Connection и реализуйте методы '>>' '<<' для вашей структуры или класса.
Затем используйте этот класс в качестве типа в шаблонах TCP/UDP/Client/Server.
Сервер и клиент возвращают объект Connection, когда соединение установлено.
(методы AcceptConnection()
для серверных классов и Connect()
для клиентских классов)
У каждого клиента есть TemplateConnection Connect(const std::string ip, const int port)
Каждый класс сервера имеет TemplateConnection AcceptConnection()
Он связывает один сокет и прослушивает входящие соединения.
Когда приходит новый запрос на соединение,
он открывает новый сокет через accept()
и создает новое соединение с клиентом.
Ему не нужно привязывать свой адрес к сокету.
Он просто вызывает метод connect()
с адресом сервера.
Он привязывает свой порт и ожидает запросов через recvfrom()
.
В recvfrom()
он явно привязывается к входящему соединению.
Он вызывает sendto()
с адресом сервера.