Процесс не завершается после закрытия окна - PullRequest
1 голос
/ 23 июня 2019

Я создаю чат-приложение на python, используя сокеты и tkinter. В 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

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...