On Tue, 13 Apr 1999, Vlad Gerasimov wrote:
> Возник вопрос и он не прост (по крайней мере для объяснения):
> пример:
> есть приложение-демон допустим муд.
> есть программа-интерфейс позволяющая общаться с этим мудом, например некий
>бот.
> Если я зайду телнетом на муд я могу посмотреть кто играет в текущее время.
> По другому эту информацию (из файлов и т.д.) не извлечь.
>
> Нужно: написать cgi отвечающую кто есть на сервере муда.
>
> Конечно можно написать cgi котороая бы логинилась каждый раз при вызове cgiхи
>и
> выдавала информацию. Но это кажется некрасивым решением.
>
> Как сделать это правильно ?
> (например чтобы прога висела залогиненной к муду) и выдавала
> бы мне по запросу информацию, что-то типа демона. возможно ли это?
#!/usr/bin/expect
set mudport ....
set daemonport ....
spawn telnet localhost $mudport
expect "Login:"
send "$login\r"
....
socket -server connect_client $daemonport
proc connect_client {socket address port} {
fileevent $socket readable [list getcommand $socket]
}
proc getcommand {socket} {
global exp_out
if [eof $socket] {
close $socket
}
send "[gets $socket]\r"
expect "(.*)$endofcommand"
puts $socket exp_out(1)
}
vwait forever
P.S. В именах переменных мог и наврать.
--------------------------------------------------
Victor Wagner vitus@ice.ru
Programmer Office:7-(095)-964-0380
Institute for Commerce Home: 7-(095)-135-46-61
Engineering http://www.ice.ru/~vitus
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =