Есть ли способ проверить полученное сообщение, не останавливая функцию, пока оно не будет получено? - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь создать чат с Tkinter и сокетом.У меня есть функция для отображения графического интерфейса, но когда я пытаюсь проверить наличие входящих соединений (если connection.recv (1024) == True ...), функция не будет создавать графический интерфейс и будет просто ждать сообщения.Есть ли способ постоянно проверять наличие новых сообщений в фоновом режиме, не мешая моей функции?

Я попытался установить входящее сообщение на 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...