[Twisted-Python] Interactive Twisted client (newbie question?)
Abe Fettig
abe at fettig.net
Wed Jan 5 11:48:37 MST 2005
Anthony Tarlano wrote:
> From what I can tell from
> your post is you *really* want is a twisted styx client that sends
> T-messages to a styx server to serve its namespace with R-messages,
> and *you* want to interact with the client synchronously.. You also
> asked for a better way to implement the client not using callbacks,
> but that was not the real issue. For _you_ the real issue is
> synchronously communicating _with_the_styx_client from a command
> line..
>
> If this assumption is correct then all you have to do is make the styx
> client a server as well, for let's say the telnet protocol. Then you
> can use a telnet client to connect to the telnet server (which is also
> the styx client) and bingo issue commands to the styx server (via the
> styx client that is also the telnet server)... Of course you will have
> to pass the styx server messages back to the telnet client
As JP mentioned, you can also use twisted.internet.stdio to provide a
command line interface to your running Twisted application. I'm
attaching a simple app that illustrates the point. Here's an example
session:
$ python stdiodemo.py
Web checker console. Type 'help' for help.
help
Valid commands: check help quit
help check
check <url>: Attempt to download the given web page
check http://www.fettig.net/
Success: got 26072 bytes.
check http://www.fettig.net/nonexistant_page
Failure: 404 Not Found
check http://not.a.real.site/
Failure: DNS lookup failed: address 'not.a.real.site' not found.
quit
Goodbye.
stdiodemo.py takes commands from standard input while the reactor is
running. When you type "check <url>", it kicks off an asyncronous task
(downloading the web page), and prints the result when it is finished.
Anthony's suggestion of using a Telnet server could work here too -
there are only a couple minor changes you'd need to make to run this as
a telnet server.
Is that helpful?
Abe
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: stdiodemo.py
URL: </pipermail/twisted-python/attachments/20050105/df154a08/attachment.ksh>
More information about the Twisted-Python
mailing list