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


Автор: Strog 25.9.2012, 22:37
Есть скрипт работающий с сокетами, он слушает сервер, при разъединении сокета необходимо переподключиться, сама прослушка сокета реализована следующим образом:
Код

my($read_sockets, $write_sockets, $error_sockets) = IO::Select->select($rsockets, $wsockets, $esockets);
#обработка данных

Сокеты блокирующие, поэтому проверочными пакетами проверять связь невозможно. Каким способом можно определить, что на сервере сокет был закрыт и необходимо переподключение?

Автор: DurRandir 25.9.2012, 23:59
read() вернёт ложь (причём следует отличать ложь от undef, встретив последний - надо смотреть в $!).

Автор: Strog 26.9.2012, 10:31
Цитата(DurRandir @  25.9.2012,  23:59 Найти цитируемый пост)
read() вернёт ложь (причём следует отличать ложь от undef, встретив последний - надо смотреть в $!). 

Спасибо smile

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