进程在关闭窗口后不会结束

2024-04-26 04:09:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用sockets和tkinter在python上构建一个聊天应用程序。所有东西在Windows上都正常工作,但是当我尝试在Ubuntu上运行它时,出现了一些问题。如果我试图关闭一个应用程序窗口,进程没有完成,我需要杀死它来完成程序。你知道吗

我想这可能是因为线程或者套接字连接出了问题。我试着写一些代码来解决它,但问题还是一样。你知道吗

此代码段用于关闭客户端窗口。它可以在Windows上运行,在Ubuntu上则不行

def close_connection(self):
        self.is_receive_message = False
        self.client_side.close()
        self.destroy()
        client.quit()

我试图关闭服务器端。我为每个客户机创建线程,当窗口关闭时,我尝试结束所有线程并完成所有连接。再说一次,在Widows上一切正常,而在Ubuntu上则不然

def quit_server(self):
    self.accepting_connection = False
    for client in self.clients:
        client.close()
        client.is_receive_message = False
        self.threads[client].join()

    self.server.close()
    server.quit()

完整的代码可以在这里找到:https://github.com/Tynianov/chat_app

提前谢谢!你知道吗


Tags: 代码selfclientfalse应用程序closeserveris