Отправить данные с помощью boost :: asio :: socket_base - PullRequest
0 голосов
/ 16 октября 2010

Почему у socket_base нет метода send ()? По сути, я хотел бы использовать сокеты boost :: asio, такие как дескрипторы сокетов linux: независимо от того, является ли базовый сокет UDP или TCP, это не имеет значения, вы можете вызвать read (), write (), sendto () и т. Д. на них.

Есть ли более правильное решение, чем просто написание класса-оболочки для классов сокетов udp и tcp asio?

1 Ответ

2 голосов
/ 16 октября 2010

Вам необходимо использовать определенный тип сокета, например boost::asio::ip::tcp::socket, который является потоковым сокетом TCP, или boost::asio::ip::udp::socket, который предназначен для дейтаграмм. Класс socket_base - это просто базовый класс, в котором хранятся общие функции. Фактические классы сокетов содержат все функции передачи, которые вы ищете, такие как функции отправки и получения.

Как видно из документации , каждый тип сокета имеет функции send и receive.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...