我正在尝试构建一个使用cmd模块的应用程序。当我运行我的程序时,我希望它进入cmdloop,并且仍然能够接收来自其他东西的打印。最终,我将有线程打印插座。但我做了一些游戏,在CMD循环中无法打印任何内容。它只是位于提示符“>;”处。但是我仍然希望它打印出它接收到的东西,或者如果我调用了一个不在这个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
目前没有回答
相关问题 更多 >
编程相关推荐