Py学习  »  Python

python cmd2中断打印promp

Doritos • 5 年前 • 1471 次点击  

我正在使用CMD2创建服务器。我已经把代码分解到了仍然会产生问题的最小代码位。

import socket
import _thread
from cmd2 import *

def grab_data(conn):
    while True:
        try:
            data = conn.recv(1024)
            print(data)
        except:
            print("disconnected.")
            break

def grab_client(sock):
    while True:
        conn, addr = sock.accept()
        print("New connection")
        _thread.start_new_thread(grab_data, (conn,))


def start_conn(ip, port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind((ip, int(port)))
    sock.listen(10)
    print("Socket listening")
    _thread.start_new_thread(grab_client, (sock,))


class CLI(Cmd):
    def __init__(self):
        Cmd.__init__(self)
        self.prompt = "Prompt> "

    def do_listen(self, arg):
        start_conn('0.0.0.0', '4446')

    def emptyline(self):
        pass
    def do_quit(self, arg):
        return True

cli = CLI()
cli.cmdloop("Welcome to the server.")

我遇到的问题是当客户端连接时。它不会重印提示。它挂在只有光标的空行上。我不知道怎样才能得到打印的提示。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43379
 
1471 次点击  
文章 [ 1 ]  |  最新文章 5 年前