запуск сервера через inetd, aborilov, 15-Фев-06, 16:04 [смотреть все]привет! написал простой tcp-сервер на perl, который вешается на порт и принимает подключения... хочу что бы он не висел как демон а только запускался при когда ето надо, и если приходит другое подключение то запускалась его копия, короче через inetd. прописал в inetd.conf, в service, все ОК! но когда пытаюсь подключиться, сервак то пытается повеситься на порт, а там уже слушает inetd что делать? может не надо вешать сервак на порт? а от куда тогда брать данные от клиента? |
- запуск сервера через inetd, Wulf, 16:30 , 15-Фев-06 (1)
>привет! >написал простой tcp-сервер на perl, который вешается на порт и принимает подключения... > >хочу что бы он не висел как демон а только запускался при >когда ето надо, и если приходит другое подключение то запускалась его >копия, короче через inetd. >прописал в inetd.conf, в service, все ОК! но когда пытаюсь подключиться, >сервак то пытается повеситься на порт, а там уже слушает inetd > >что делать? может не надо вешать сервак на порт? а от куда >тогда брать данные от клиента? через inetd не надо слушать порт. Там надо делать 2 вещи: 1. при необходимости, отключить буферизацию у stdout. 2. читать и писать в stdin/stdout соответственно. И не надо создавать сокетов и т.д. и т.п.
- запуск сервера через inetd, aborilov, 16:38 , 15-Фев-06 (2)
>>привет! >>написал простой tcp-сервер на perl, который вешается на порт и принимает подключения... >> >>хочу что бы он не висел как демон а только запускался при >>когда ето надо, и если приходит другое подключение то запускалась его >>копия, короче через inetd. >>прописал в inetd.conf, в service, все ОК! но когда пытаюсь подключиться, >>сервак то пытается повеситься на порт, а там уже слушает inetd >> >>что делать? может не надо вешать сервак на порт? а от куда >>тогда брать данные от клиента? > >через inetd не надо слушать порт. Там надо делать 2 вещи: >1. при необходимости, отключить буферизацию у stdout. >2. читать и писать в stdin/stdout соответственно. >И не надо создавать сокетов и т.д. и т.п. каким образомотключить буферизацию?
- запуск сервера через inetd, Wulf, 16:46 , 15-Фев-06 (3)
> >каким образомотключить буферизацию? как обычно: select(( select, $| = 1 )[0] ); иначе, интерактивность будет не очень.
- запуск сервера через inetd, aborilov, 16:56 , 15-Фев-06 (4)
> >как обычно: >select(( select, $| = 1 )[0] ); > иначе, интерактивность будет не очень. и еще вопросик: а если мне надо принимать данные построчно, то как лучше делать?
- запуск сервера через inetd, Wulf, 17:41 , 15-Фев-06 (5)
>и еще вопросик: >а если мне надо принимать данные построчно, то как лучше делать? если у тебя программы собираются общаться строка - 1-й комп, строка - 2-й комп и т.д. по кругу, то буферизацию надо отключать.
- запуск сервера через inetd, aborilov, 12:04 , 16-Фев-06 (6)
все ясно! разобрался! спасибо!а как узнать ip с котрого пришел коннект?
- запуск сервера через inetd, aborilov, 12:44 , 16-Фев-06 (7)
ОК! с ip все понятно! я получаю строку вот так - $line = <STDIN>;как мне ограничить ограничить эту строку? т.е. получать только первые 20 символов! что бы не было переполнения
- запуск сервера через inetd, chip, 14:37 , 16-Фев-06 (8)
>ОК! с ip все понятно! >я получаю строку вот так - >$line = <STDIN>; > >как мне ограничить ограничить эту строку? т.е. получать только первые 20 символов! >что бы не было переполнения Слышал звон, да не знаю где он. Какого переполнения? В данном случае не возникнет никакого переполнения. Для чтения 20 символов используйте: perldoc -f sysread ps: и настоятельно рекомендую начать с perldoc perlintro
- запуск сервера через inetd, DeadMustdie, 20:33 , 16-Фев-06 (9)
>что делать? может не надо вешать сервак на порт? а от куда >тогда брать данные от клиента? Не надо вешать. Данные брать с stdin, отправлять на stdout. Остальное - забота inetd.
- запуск сервера через inetd, aborilov, 21:33 , 16-Фев-06 (10)
И вроде последний вопрос: клиент приконекчивается, я жду от него строку sysread(STDIN,128);но так ждать я могу без конечно! как сделать что бы сервак через определенное время отваливался?
|