Golang. Несколько сообщений в одном TCP соединении
Всем привет. Возможно ли в одном tcp соединении отправить несколько сообщений и обработать ответы по ним?
connection, _ := net.Dial("tcp", net.JoinHostPort("host", "port"))
_, _ := connection.Write([]byte("message1" + "\r\n"))
// чтение ответа
_, _ := connection.Write([]byte("message2" + "\r\n"))
// чтение ответа
Ответы (2 шт):
Автор решения: KoVadim
→ Ссылка
Да, можно. Явных ограничений сам протокол TCP не накладывает. Главное аккуратно проверяйте коды ошибок.
Автор решения: prospero78su
→ Ссылка
Вы можете с сырым TCP-сокетом делать что угодно. Варианты доставки нескольких сообщений:
- последовательно, одно за другим
- одной посылкой -- в составе структуры (например, JSON)
Надо помнить о том, что сообщения могут иметь разные приоритеты. Например, телеметрия (короткое сообщение, минимальный интервал времени), пересылка фотографии (минимальные накладные расходы).