[Python] Newbie II

Manlio Perillo manlio_perillo a libero.it
Dom 10 Set 2006 22:41:32 CEST


Sub-Zero ha scritto:

Dai una occhiata a Twisted e guarda come è facile scrivere un server per
il protocollo Echo:
http://twistedmatrix.com/projects/core/documentation/examples/echoserv.py


> import SocketServer
> class EchoRequestHandler(SocketServer.BaseRequestHandler):
>     def handle(self):
>         print 'Connesso!'
>         while 1:
>             msg = self.request.recv(1024)
>             if not msg:
>                 break
>             print 'Ricevuto:',msg
>             self.request.send(msg)
>         print 'Disconnesso'
> server =
> SocketServer.ThreadingTCPServer(('127.0.0.1',7777),EchoRequestHandler)
> server.handle_request()
>  
> Il vero problema lo incontro quando mi connetto: tutto cio' che scrivo
> viene spedito un carattere alla volta e poi è  visto come una stringa e
> nn come un comando, 


Usi un client telnet per comunicare con il server?

> in sostanza dovrei fare in modo che il comando venga
> interpretato ed eseguito alla pressione del tasto 'enter' e non alla
> pressione di un qualunque tasto e poi, 


Leggi i sorgenti (e la documentazione).
Ad esempio il modulo BaseHTTPServer.

cmd = self.rfile.readline()

e per mandare una stringa al client:
self.wfile.write("hello\n")


> come faccio a far eseguire il
> comando ricevuto ?
>  

Per comando intendi un comando per la shell?
Se devi fare solo questo perchè non ti basta un server telnet già pronto?

Comunque per eseguire un comando/processo:
import os

os.system(cmd)




Saluti  Manlio Perillo



Maggiori informazioni sulla lista Python