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