LINUX.ORG.RU

> Вопрос следующий: ограничен ли размер данных, передаваемых за один раз через send(), и если да (что я вижу на практике), то как грамотно организовать передачу данных любой длины?

ну если это TCP, то по всей видимости передавать блок данных в цикле до тех пор, пока не будут переданы все данные.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от dima3351

> не уточнил, так какдумал, что она протоколо-независимая. tcp.

синтаксис конечно не зависит от протокола, но передать к примеру 100k UDP сообщение у вас не получится в любом случае :)

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Кстати, поинтересуюсь, для UDP есть гарантии минимального размера пакета? А то не совсем понятно, как кроссплатформенно писать с его применением.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

User-Agent: lynx + jed (x86_64-pc-asus-linux-glibc-perdl-debian)

> Кстати, поинтересуюсь, для UDP есть гарантии минимального размера
> пакета? А то не совсем понятно, как кроссплатформенно писать с его
> применением.

То есть максимального, который не фрагментируется?

Всё равно. Если мне не изменяет память, UDP *вообще* ничего *не*
гарантирует. Мда...

--
-o--=O`C
 #oo'L O
<___=E M

olecom
()
Ответ на: комментарий от klalafuda

Ясно, спасибо, видел в сети такую реализацию передачи длинных сообщений, думал, может есть другой вариант.

Тогда такой вопрос - а какой же максимальный размер отправляемого сообщения? В манах ничего нет...

dima3351
() автор топика
Ответ на: комментарий от dima3351

> Тогда такой вопрос - а какой же максимальный размер отправляемого сообщения? В манах ничего нет...

В TCP нет понятия сообщения. Там непрерывный поток данных. 1 вызов send() != 1 пакет. Оно может подождать следующего вызова send() и переслать все данные вместе, а может данные одного вызова нарезать на несколько пакетов.

gods-little-toy ★★★
()
Ответ на: комментарий от gods-little-toy

Спасибо. Все встало на свои места.

dima3351
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.