Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > IO::Socket::INET виснет сервер


Автор: gawriil 10.7.2010, 10:02
Здравствуйте!

Для организации взаимодействия создаю сервер:

Код

my $socket = IO::Socket::INET->new( LocalAddr => '127.0.0.1',
                                   LocalPort => 2222,
                                   Proto     => 'tcp',
                                   Listen    => 128,
                                   Type      => SOCK_STREAM ) || die "$!";
while (1) {
   $socket->autoflush(1);
   while ( my $session = $socket->accept() ) {

        # обработка

  }
}


в начале все работает отлично, но после n-го подключения сервер перестает принимать запросы(ощущение, что просто виснет). Кто-нибудь встречался с подобным? 

Автор: Pfailed 10.7.2010, 20:47
Возможно один из клиентов подключается к серверу и не отключается долгое время. Таким образом сервер в это время не может принять новое подключение и ставит его в очередь. Создаётся впечатление, что сервер завис.
Дабы избежать такой ситуации существует несколько способов для создания серверов способных обрабатывать несколько подключений одновременно.

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