LINUX.ORG.RU

Можно ли запихнуть данные назад в сокет если слишком много прочитал recv?

 


1

1

сабж.

Мне кажется что я где-то что-то такое читал, но может это было и не про сокеты. Поясни, дорогой ЛОР

// сокеты обычные, сетевые, линуксовые

★★★

Мне кажется что я где-то что-то такое читал

Была такая шутка, что надо закачивать назад ненужные скачивания, чтобы интернет не закончился.

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

Я уже разобрался: я читал про stdin в Си. Там можно запихнуть взад, если лишнего прочел. Реализовано макросом-оберткой над функциями чтения. Такое же можно и тут запилить, но ну как уже сделали?

pihter ★★★ ()

Складывай в динамический буфер и кусай оттудова пакеты, если достаточно набралось, и пока не кончатся. Чо как маленький.

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

А не такая задача: задача обработать заголовок, а потом пусть работают другие. Длину заголовка заранее не знаю. Читать по байтам — сильно жирно по сисколам.

А так чет типа того и придется изобретать, да. Думал готового словить, но от вас дождешься )

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

Складывай в динамический буфер и кусай оттудова пакеты, если достаточно набралось, и пока не кончатся. Чо как маленький.

так я и без тебя умею. потоковое видео много каналов мало памяти. это все и затевается для экономии памяти

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

Складывай в динамический буфер и кусай оттудова пакеты

потоковое видео много каналов мало памяти. это все и затевается для экономии памяти

Ну если обратно складывать, то в любом случае у тебя этот буфер будет где-то храниться. Или в ядре, или в твоём приложении. Обратно запихать отправителю не получится. :)

turtle_bazon ★★★★ ()

Помимо уже сказанного с MSG_PEEK, на новых ядрях, в теории, можно попробовать через приаттаченный к сокету bpf сделать. Других вариантов вроде быть не может.

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

текущая интерпретация этой шутки (уже нет): электронные книги, взятые в библиотеке, больше никто не может взять (одновременно), книга выдается на 30 дней, после прочтения надо вернуть, или она вернется автоматически по истечении срока.

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

Посоны, что он хочет? Зачем что-то в зад пихать? Он боится переполнения буфера?

он хочет развидить то что получает из сети :-)

MKuznetsov ★★★★★ ()
Последнее исправление: MKuznetsov (всего исправлений: 1)