URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 2338
[ Назад ]

Исходное сообщение
"Через сокеты Perl передать файл в IE,opera,mozilla etc."

Отправлено mthawk , 21-Май-04 14:38 
Привет all!
есть задача - написать серверное приложение на perl которое, используя сокеты, передавало бы файлы в клиентскую прогу (в частности веб-браузер, качалка и иже с ними.)
Глобально суть в том что строится антилич - с процесом раздачи файлов через сокеты, потому что (то ли руки кривые, то ли.. тут мысль останавливается)
все перепробованные мною до этого способы загружали отдаваемый файл в оперативку и уже оттуда выдавали на-гора (принимая во внимание что отдаются файлы размером 500 - 800 мб) работа таких скриптов принимала угрожающие обороты.
Мне кажется что через сокеты можно реализовать эту задачу. и если да то как.

Содержание

Сообщения в этом обсуждении
"Через сокеты Perl передать файл в IE,opera,mozilla etc."
Отправлено rohan , 22-Май-04 02:06 
http://forum.ru-board.com/topic.cgi?forum=24&topic=2994


"Через сокеты Perl передать файл в IE,opera,mozilla etc."
Отправлено mthawk , 22-Май-04 21:59 
>http://forum.ru-board.com/topic.cgi?forum=24&topic=2994
Вот именно эти скрипты и проверялись. 3 раза лёг сервер, потому что они отожрали под себя всю оперативную память.
И все же сокетами можно реализовать поставленную задачу?


"Через сокеты Perl передать файл в IE,opera,mozilla etc."
Отправлено rohan , 23-Май-04 00:05 
А можно ли гаечным ключем увеличить мощность мотора?
Вопрос примерно настолько правильно поставлен.

Имеем следующие варианты борьбы:
контроль REFERER
создание одноразовых ссылок
раздача кукизов, и контроль наличия оных

И которые сокеты имеются в виду, TCP?
В смысле свой WEB-сервер писать? Нафига?!



"Через сокеты Perl передать файл в IE,opera,mozilla etc."
Отправлено mthawk , 26-Май-04 00:29 
Мне очень близок пример mp3spy.ru. я не думаю что у них сервер с бездонной оперативкой. учитывая сколько раздач у них идет одновременно - не думаю что работает система наподобие ndl (что можно найти по ссылке в Вашем предидущем посте)
а если и так, то каким образом можно осуществить контроль буфера обмена. ведь чтение с винта по fopen идет намного быстрее, чем забирает файл клиент. вот и получается что весь он в результате ложится в оперативку. и кирдык серверу. чем можно ограничить обьем оперативной памяти отдаваемой работающему приложению.?

"Через сокеты Perl передать файл в IE,opera,mozilla etc."
Отправлено solotony , 04-Июн-04 02:43 
>а если и так, то каким образом можно осуществить контроль буфера обмена.
>ведь чтение с винта по fopen идет намного быстрее, чем забирает
>файл клиент.

По твоему что? По твоему при fopen весь файл читаеся в оперативку? Читаются нужные блоки и то не по open, а по read. А зачем грузить весь файл сразу? Загрузил блок - отдал, загрузил блок - отдал.

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

rlimits