Скриншот Wireshark, показывающий использование флага PSH моим кодом:

Я использую C++11, который работает в Ubuntu (16.04).
Моя функция отправки выглядит так:
int sendStatusCode = send(socket , *&pointerToMessageAsCharArray , sizeOfMessage , 0);
Я просмотрел описание функции и понял, что последний аргумент (который у меня равен 0) — это флаг. Чего я не понимаю, так это значение, которое мне нужно подключить, чтобы отключить флаг PSH, не меняя ничего больше (если это вообще возможно). Можете ли вы помочь?
Редактировать
Размер сообщений довольно маленький. например:
const char m_ME[5] = {m_HEADER_ONE, m_HEADER_TWO, m_M_HEX, m_E_HEX, m_FOOTER_HEX};
который при отправке выглядит так:
[img]https://i.sstatic .net/MZehJ.png[/img]
Самое большое сообщение, которое я отправляю, состоит из 8 символов, что соответствует 8 байтам.
РЕДАКТИРОВАТЬ
Я реализовал этот ответ (Как отключить алгоритм Нэгла в Linux?) и мне кажется, что TCP_NODELAY не отключает флаг PSH. Код, который я использовал для проверки:
int noDelayState = 1; // 0 means prefer bandwidth optimization over low latency
int tcpPushOptionOff = setsockopt(m_socketRight
, IPPROTO_TCP
, TCP_NODELAY
,(char *) &noDelayState
, sizeof(int));
if (tcpPushOptionOff < 0) { /* do smth */ }
Подробнее здесь: https://stackoverflow.com/questions/554 ... ction-send