Chandan_srivastava Ответов: 1

Одно и то же TCP-соединение для двух протоколов


Я пишу клиент-серверное приложение на языке C++. Эти приложения общаются друг с другом с помощью TCP-сокетов. Я хочу использовать два прикладных протокола для связи. Один двоичный и один текстовый протокол. Есть два пути. Я могу использовать два соединения для каждого протокола или использовать одно и то же соединение для обоих протоколов.

Каковы плюсы и минусы использования одного и того же соединения для двух протоколов?

Что я уже пробовал:

NA
Каковы плюсы и минусы использования одного и того же соединения для двух протоколов?

1 Ответов

Рейтинг:
12

Jochen Arndt

Если вы используете одно соединение для двух протоколов, то, строго говоря, у вас будет только один протокол, потому что ваш клиент должен решить, какой тип обработки данных должен использоваться, и это решение определяется протоколом.

Если эти два протокола не являются стандартными, но определены вами, просто объедините их в один. Каждый протокол обычно имеет какой-то заголовок, содержащий информацию о следующих данных. Определите такой заголовок, который указывает, являются ли данные текстовыми или двоичными.

При использовании стандартных протоколов вы можете сделать то же самое. Определите свой собственный протокол с заголовком, который определяет тип данных.

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

Поэтому я бы пошел на это решение в соответствии с правилом "держите его простым".

Однако могут возникнуть ситуации, когда использование двух соединений может быть более уместным. См., например, FTP, который использует соединение управления и передачи данных.


CPallini

5.