Forum Webscript.Ru

Программирование => Perl => Тема начата: Kwazar от 06 Сентября 2004, 10:31:15

Название: Аналог $browser->timeout() (LWP) в Socket
Отправлено: Kwazar от 06 Сентября 2004, 10:31:15
Сабж
Заранее признателен.
Название: Аналог $browser->timeout() (LWP) в Socket
Отправлено: NeoNox от 06 Сентября 2004, 12:21:56
пишу по памяти, идея такова:


use IO::Socket;
use IO::Select;

$sock = new IO::Socket::INET(PeerAddr => $host,
                                           PeerPort => $port,
                                           Proto    => \'tcp\',
                                           Timeout  => $tout
                                           );
$sel = new IO::Select;
$sock->autoflush(1);

$sel->add($sock);

if (!$sel->can_read(30)) {
print "не могу ничего услышать от \'$host\' в течении 30 секунд!!!\\n";
}
Название: Аналог $browser->timeout() (LWP) в Socket
Отправлено: Kwazar от 06 Сентября 2004, 13:40:59
Я обращаюсь к станицам через прокси
Вот синтиксис:
use Socket;
$site="site.ru";
$cur=\'/test.html\';
$proxy="93.194.70.123";
$port="6588";

$AF_INET=2;
$SOCK_STREAM=1;
$protocol=(getprotobyname(\'tcp\'))[2];
$end="\\015\\012";

        $addr=(gethostbyname($proxy))[4];
        $addrs=pack (\'S n a4 x8\', $AF_INET, $port, $addr);
        {
                if (!(socket(LOAD,$AF_INET,SOCK_STREAM,$protocol)))
                {
                       print "Невозможно создать сокет на прокси: $proxy ";
                }
                if (!(connect(LOAD, $addrs)))
                {
                        print "Ошибка подключения";
                }
                select(LOAD);
                $|=1;
                select(STDOUT);
               
                print LOAD "GET http://$site$cur HTTP/1.0$end";
                print LOAD "Content-Type:application/x-www-form-urlencoded$end";
                print LOAD "Accept: text/html$end";
                print LOAD "Accept: image/jpeg$end";
                print LOAD "User-Agent: $user$end";
                print LOAD "Accept: image/gif$end";
                print LOAD "Accept: image/x-xbitmap$end";
                print LOAD "Referer: $refer/$end";
                print LOAD "Accept: image/pjpeg$end";
                print LOAD "Authorization: Basic $encoded$end";
                print LOAD "$end$end";
                @str=;
                close (LOAD);
        }

В данном формате запроса, как вставить то, что вы написали? Принцип понятен, но синтаксис пока для меня остается китайской грамотой.

Заранее благодарю.
Название: Аналог $browser->timeout() (LWP) в Socket
Отправлено: NeoNox от 06 Сентября 2004, 15:05:57
Kwazar
perldoc IO::Select