[Moscow.pm] unix socket

Dmitry E. Oboukhov dimka на uvw.ru
Пт Май 23 23:41:00 PDT 2008


> sub process_request
> {
> my $socket=new IO::Socket::UNIX(Peer=>'сокет твоего сервера')

> // тут читаем из sidin и пишем в сокет
> // читаем из сокета и пишем в stdout

> // заодно тут же пишем логи кто кому чего сказал
> // итп

> }

вот тут можно наверно сделать что-то такое (наверное это будет сильно
проще селектов)

sub process_request {
  my $socket=...
  
  if (fork)
  {
  	close STDIN;
  	while(<$socket>)
  	{
  		print $_ 
  
  	... тут кладем логи с метками о времени о том что 
  	нам написал сервер
  	}
  }
  else
  {
  	close STDOUT;
  	while(<STDIN>)
  	{
  		print $socket 
  	... тут кладем логи с метками о времени о том что нам
  	написал клиент
  	}
  	POSIX::_exit();
  }
}

PS обрати внимание на выход из дочки: выходим через посикс-ексит а не
просто ексит, потому что деструкторы не хотим вызваать

PS: логи можно писать в STDERR


Подробная информация о списке рассылки Moscow-pm