Я пытаюсь создать приложение, которое использует модуль cmd.Когда я запускаю свою программу, я хочу, чтобы она упала в cmdloop и все еще могла получать распечатки с других вещей.Со временем у меня будут нити, печатающие из сокетов.Но я немного поиграл и не могу что-то напечатать, пока находится в cmdloop.Он просто сидит на подсказке «>».Но я все же хотел бы, чтобы он распечатывал получаемые данные или печатал наши ответы из функции, если я вызываю функцию, которая не входит в этот класс CLI.
import cmd
import string, sys
class CLI(cmd.Cmd):
def __init__(self):
cmd.Cmd.__init__(self)
self.prompt = '> '
def do_hello1(self, arg):
print "hello1 again", arg, "!"
def help_hello1(self):
print "syntax: hello1 [message]",
print "-- prints a hello1 message"
def do_quit(self, arg):
sys.exit(1)
def help_quit(self):
print "syntax: quit",
print "-- terminates the application"
# shortcuts
do_q = do_quit
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
HOST = ''
PORT = 5555
try:
sock.bind((HOST, PORT))
except socket.error as msg:
print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
sys.exit()
print 'Socket bind complete'
sock.listen(10)
conn, addr = sock.accept()
cli = CLI()
cli.cmdloop()
while True:
data = conn.recv(1024)
print data