Интересует ситуация: На клиенте за короткое время вызываются 2 send. Возможно ли, что 2 этих пакета склется в один? Клиент send (..., "hello", ...); send (..., "world", ...); Сервер recv(..., buf,...); // buf == "helloworld"
l_inc а при каких условиях? я пытался и канал нагрузить, и передавать данные максимально быстро, без лишних операций - увы
Условия бесполезно искать, для TCP как TCP/IP стек решит - так и передаст. Для TCP вообще нет никакой связи между нарезкой потока у отправителя и у получателя - это просто поток байт, никаких пакетов с точки зрения пользователя рассматриваться не должно. Обсуждалось уже здесь http://www.wasm.ru/forum/viewtopic.php?id=42270
Dmitry_Milk ясно, а как дело обстоит с большими блоками? можно ли передать функции send буффер размером в 5 МБ и получить его в несколько recv или обязательно перед отправкой надо самому резать?