Как инкапсулировать функции отправки и получения сокетов C / C ++ в классе? - PullRequest
0 голосов
/ 07 января 2020

Я использую стандартную функцию сокета C / C ++, но я хотел бы инкапсулировать их в класс C ++. Проблема заключается в том, что функции для отправки и получения возвращают (или требуют) указатели на аннулирование. Есть ли способ использовать объект, который инкапсулирует эти значения?

Например, в Java классе Socket используются оба типа ObjectOutputStream и ObjectInputStream для работы с типом объекта, чтобы каждый объект мог быть отправлено через сокеты. Я знаю, что в Java подход совсем другой, потому что указатели скрыты для программиста, но есть ли подобное решение в C ++?

Ответы [ 2 ]

0 голосов
/ 11 января 2020

Как говорит @GCT, сокет - это не функция, а функция системного уровня, которая используется для обработки сетевых подключений. В C / C ++ каждый сокет идентифицируется с помощью целочисленного значения, поэтому не так просто, как вам хочется, обрабатывать его как объект.

Я рекомендую вам прочитать это учебное пособие , чтобы узнать Подробнее о сокете.

Может быть, это может помочь вам: у меня есть проект, который показывает, как использовать сокеты в C ++. Сервер и клиент содержатся в своем собственном классе. Вы можете получить его по этой ссылке .

0 голосов
/ 07 января 2020

socket не является функцией c ++. Это функция системного уровня, и она ничего не знает об объектах (или вообще ничего о c ++), поэтому вам нужно организовать указатель на данные, которые вы хотите передать.

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