Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > 1.Строки 2.file2mail и пр.


Автор: Lat1n0S 1.1.2006, 21:38
1.Вот написал я простенький довнлоад скрипт
Код

use IO::Socket;
$server="127.0.0.1";
$socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$server", PeerPort => "80");
printf $socket ("GET /123.txt HTTP/1.0\nHost: host.ru\nAccept: */*\nConnection: close\n\n");
while(<$socket>){print "$_";}

На тот случай,если на сервере нет качалок(wget,curl и пр.)
Т.е.
Код

bash-2.05a$ ./download.pl > 123.txt

Но трабл...Там ещё и ответ сервера..типо:
Код

HTTP/1.1 200 OK
Date: Sun, 01 Jan 2006 18:18:43 GMT
Server: Apache/2.0.48 (Win32)
Accept-Ranges: bytes
Content-Length: 1980
Connection: close
Content-Type: text/html; charset=windows-1251


Вообщем нужно,или удалить все строчки до первой пустой строки,или удалить первые 8 строк smile

2. Какой модуль может посылать файл на e-mail?

3. Как работать с бинарными протоколами?
Вот например,с простым всё ясно:
Код

use IO::Socket;
$socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "127.0.0.1", PeerPort => "12345");
print $socket "super_command\n";
print $socket "puper_command\n";
while(<$socket>){print "$_";}

А кто нить может дать подобный примерчик,только для работы с бинарными протоколами?
smile

Автор: sharq 4.1.2006, 18:23
Lat1n0S
1. Тебе действительно стоит получить заголовок ответа.
Заголовок: от начала, до первой пустой строчки, т.е. до "\n\n".
Это ты можешь сделать в цикле, пропуская эти строчки, или использовать модуль LWP, который написан специально для этих целей.

2. Файл можно послать на email - написать письмо с аттачем, это можно и ручками сделать, а можно использовать модуль, например, MIME::Lite.

3. Что значит простой и бинарный протокол?
По-твоему, протокол tcp - это простой. smile

smile

Автор: Lat1n0S 5.1.2006, 18:00
1.Ну да,чёт ступил smile)
2.попробую
3.ну например ICQ протокол бинарный(байты посылать),а IRC не бинарный smile)

Автор: sharq 6.1.2006, 15:23
Lat1n0S для работы с различными протоколами, в т.ч. с бинарными написаны модули, их можешь найти на CPAN. Обычно это модули семейства Net::*.
Вот например, для работы с ICQ - смотри http://cpan.uwinnipeg.ca/search?query=ICQ+&mode=dist.

smile

Автор: Lat1n0S 8.1.2006, 16:30
Дык,модули это само собой,но допустим Mail.ru Agent'a там нету модуля ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)