Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Comoderator of RU.CGI.PERL           2:5020/371.32  03 Aug 2001  14:29:19
 To : V Maslikhov
 Subject : Moderatorial [*] (Re: Проблема ТСР клиент - сервер)
 -------------------------------------------------------------------------------- 
 
 VM>  Друзья мои !
 
 VM>  Подскажите как выйти из такого неприятного положения :
 
 VM>  если я открываю TCP сервер как
 VM>  use IO::Socket;
 VM>  $server = IO::Socket::INET->new(LocalPort => "3000",
 VM>                                  Type      => SOCK_STREAM,
 VM>                                  Reuse     => 1,
 VM>                                  Listen    => 1) or die "$@\n";
 
 VM>  и далее жду соединения от клиента
 
 VM>  client = $server->accept();
 
 VM>  то после соединения клиента на мой сервер работать с ним удается через
 VM>  $client,
 VM>  все - ОК, но если в процессе работы клиент отвалится, то я никак не могу
 VM>  определить это.
 VM>  Проверки $client'а типа  while($client) или  if($client) дают положительный
 VM>  ответ, т.е. вроде как
 VM>  можно работать с $client дальше, даже первый print $client "lkjlk";
 VM> проходит
 VM>  успешно,
 VM>  а вот уже следующий print $client "lkjlk"; приводит к ошибке "Broken pipe"
 VM> и
 VM>  вся программа
 VM>  умирает напроч.
 
 VM>  Как можно проверить действительное состояние $client ???
 
 VM>  С нетерпением жду ваших подсказок,
 VM>  Слава.
 VM> >
 VM> >
 
 Во-первых, оффтопик, а во-вторых, установкой обработчика SIGPIPE. Если клиент
 умирает молча, то сервер может узнать об этом только при попытке общения с
 ним. При которой он получит SIGPIPE.
 
 -- 
 FIDO: Artem Chuprina, 2:5020/371.32, comoderator of RU.CGI.PERL
 Internet: Artem Chuprina <cmrcp@ran.pp.ru>, comoderator of fido7.ru.cgi.perl
 --- slrn/0.9.7.0 (Linux)
  * Origin: AKA с подствольным плюсомётом (2:5020/371.32)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Moderatorial [*] (Re: Проблема ТСР клиент - сервер)   Comoderator of RU.CGI.PERL   03 Aug 2001 14:29:19 
Архивное /ru.cgi.perl/74005057d1895.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional