Автор Тема: Аналог $browser->timeout() (LWP) в Socket  (Прочитано 2433 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Kwazar

  • Философ
  • Постоялец
  • ***
  • Сообщений: 201
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.uhuhu.ru/
Аналог $browser->timeout() (LWP) в Socket
« : 06 Сентября 2004, 10:31:15 »
Сабж
Заранее признателен.
С уважением Сергей

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Аналог $browser->timeout() (LWP) в Socket
« Ответ #1 : 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";
}
The documentations is your friend

Оффлайн Kwazar

  • Философ
  • Постоялец
  • ***
  • Сообщений: 201
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.uhuhu.ru/
Аналог $browser->timeout() (LWP) в Socket
« Ответ #2 : 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);
        }

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

Заранее благодарю.
С уважением Сергей

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Аналог $browser->timeout() (LWP) в Socket
« Ответ #3 : 06 Сентября 2004, 15:05:57 »
Kwazar
perldoc IO::Select
The documentations is your friend

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28