LINUX.ORG.RU

Копирование дескрипторов (сокетов) в массив на Perl


0

0

Приветсвую всех! Хотел спросить у ГУРУ: каким образом на Perl можно организовать копирование дескрипторов (сокетов)? Суть такая, что есть 2 программы: первая работает в качестве демона и слушает определенный порт, на который поступают команды от второй программы на установку соединения с нужным сервисом (IP+port). Вторая программа после отправки команды и получения ответа разрывает связь с первой, но первая программа продолжает поддерживать установленные соединения с сервисами. В качестве ответа во вторую программу передается ID канала (выбирается произвольно), и если вторая хочет отправить первой дополнительную команду на сервис, с которым уже было установлено соединение, она отправляет его на соответсвующий ID: для этого в первой проге создается массив сокетов: @SOCK;

while (accept(CLIENT, SERVER)) { # do something with CLIENT }

Каким образом можно скопировать дескриптор сокета CLIENT в $SOCK[0]? B как его потом использовать в коде вида $f = <CLIENT>;

Через скаляр работает: $SOCK = *CLIENT; $s = <$SOCK>;

Но я хотел бы использовать массив: $SOCK[0] = *CLIENT; $s = <$SOCK[0]>; И это уже не прокатывает

В чем косяк? Надеюсь на вашу помощь!!!!

anonymous

> Но я хотел бы использовать массив: $SOCK[0] = *CLIENT; $s = <$SOCK[0]>; И это уже не прокатывает

А что тебе мешает сделать my $sock = $SOCK[0]; $s = <$sock>? :)

swizard
()
Ответ на: комментарий от swizard

Спасибо, сработало! Тему можно закрыть

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.