LinuxForum.Fans
Тема

Perl, подвисание сокетов

Автор: enRai 1 сообщений 1426 просмотров 🔒 закрыта
#25095

Поможите советом, достопочтенные! Вкратце суть:

text

use IO::Socket;
#...
$socket = IO::Socket::INET->new(
    PeerAddr => $host,
    PeerPort => $port,
    Proto => "tcp",
    Timeout => 50,
    Type => SOCK_STREAM) || die "Error: $!\n";

print $socket "GET $dir HTTP/1.0\nHost: $host\n\n"; while (<$socket>) { $str.=$_; } close($socket); #...

Итого в процессе юзания скрипта - частые зависания сокета... Загуглил, пишут, что вроде как в таких случаях коннект происходит, но потом, в то время как скрипт ждет ответа, сервер по каким-то сугубо личным соображениям его не шлет. Вроде бы как можно решить 2-я путями: 1. select 2. blocking.

В первом случае вообще сути не понял. Все изъяснения по этому поводу непонятны и расплывчаты, да еще и не касающиеся данной проблемы.
Во втором случае не пойму куда вставлять замкнутый цикл с проверкой или просто неправильно понял способ проверки. Куда не вставлю цикл, результат один - зависание.

Линкольн Д. Штайн помог :) Спасибо ему огромное! Проблема решена.

Войдите или зарегистрируйтесь, чтобы ответить.