Как реализовать протокол многоцелевого сокета? - PullRequest
0 голосов
/ 01 марта 2012

Я создаю мультимедийное приложение клиент / сервер для личного использования.Приложение работает, но у меня есть два сокета для каждого соединения: один для команд сервера / клиента и связи (просто отправка строк JSON туда и обратно; другой для отправки сериализованного носителя.

Как объединить двасокеты таким образом, что я знаю, что это за данные, или лучше просто оставить их как есть?

1 Ответ

2 голосов
/ 01 марта 2012

Вам необходимо определить структуру ваших сообщений, чтобы использовать один сокет для обоих.Например:

Message format:
  Command,DataLen,Data

Example messages:
  JSON,20,{ "text": "Hello!" }

  CMD1:9:Some Data

Это текстовый формат, в котором запятая используется для отделения команды от длины данных и данных.Вы можете использовать двоичный формат (который, вероятно, легче анализировать и более надежный), например:

CommandLen(4-bytes):Command:DataLen(4-bytes):Data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...