有没有一种方法可以检查收到的消息而不会暂停功能,直到收到消息为止?

时间:2019-05-02 19:59:09

标签: python-3.x sockets

我正在尝试使用Tkinter和套接字创建一个聊天室。我有一个用于GUI显示的功能,但是当我尝试检查传入的连接时(如果connection.recv(1024)== True ...),该功能将不会创建GUI,而只会等待一条消息。有没有一种方法可以在后台不断检查新消息而不会妨碍我的功能?

我试图将传入消息设置为cmessage = connection.recv(1024),但这将停止整个程序,直到收到消息为止。 cmessage是来自客户端的消息。

def sendf(messageBox):
    message = messageBox.get()
    connection.send(message.encode())
    messageBox.delete(0, END)
def chatRoom(soc, connection, addr, port, host_name, ip, name, client_name):
    window = Tk()
    window.title("PickleChat")
    window.geometry("450x700")

    sendButton = Button(window, text = "SEND", command = lambda : sendf(messageBox))
    sendButton.grid(column = 0, row = 0)

    messageBox = Entry(window, width = 48)
    messageBox.grid(column = 0, row = 1)

    if connection.recv(1024) == True:
        cmessage = connection.recv(1024)
        cmessage = cmessage.decode()
        print(cmessage) 

    window.mainloop()

chatRoom(soc, connection, addr, port, host_name, ip, name, client_name)

0 个答案:

没有答案