Я новичок в программировании сокетов (как вы уже выяснили мой глупый вопрос), но сохраняя мой позор в сторону, я пишу программу, использующую TCP posix. Мой ограничитель следующий: сообщение, которое должно быть отправлено клиентом на сервер, должно быть прочитано как поток байтов, и, хотя мое приложение не является высокопроизводительным, сообщение должно быть доставлено как можно скорее. Я написал клиентский класс TCP с намерением сделать следующее: 1 connect - many send - и 1 закрыть в конце потоковой передачи. Проблема в том, что сообщения не доставляются почти в реальном времени (я предполагаю, что он ждет, чтобы иметь больший пакет для улучшения пропускная способность). После некоторых исследований в Интернете я обнаружил, что, хотя вы можете отключить алгоритм Nagle (NA), это очень плохая идея. Поскольку я новичок в программировании сокетов, я не хочу отключать функции, которые я не совсем понимаю. Итак, у меня остались два (плохо?) Варианта:
- connect - send-close для сообщения
- 1 connect - отправить несколько раз и сделать 1 закрыть в конце с отключенным NA. Хотя я читал о последствиях отказа от NA, мне кажется, что открытие и закрытие сокета каждый раз только для отправки сообщения - это тоже дорогостоящая цена.
Существуют ли другие решения, не выходя из сокетов?
Спасибо.