[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