gpt4 book ai didi

python - PyQt:监听 ip、端口时窗口停止响应

转载 作者:行者123 更新时间:2023-11-30 22:54:39 25 4
gpt4 key购买 nike

我正在尝试使用套接字制作一个简单的聊天应用程序,当我尝试一个简单的事情时,制作一个循环并监听我的主机名和端口,GUI 将开始卡住并且根本不会响应。

但是,我也尝试了 QTimer(),因为它是为 PyQt 设计的,但它会带来相同的结果并卡住窗口。

def startloop(self):
IP = socket.gethostbyname(socket.gethostname())
self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.s.bind((IP, 5005))
self.loop = QtCore.QTimer(self)
self.loop.timeout.connect(self.check)
self.loop.start(10000)

def recv(self):
data, addr = self.s.data.recvfrom(1024)
print data

10秒后(发生超时时),它开始卡住窗口,可能是什么问题?我需要分离进程吗?还有其他更好的解决方案吗?

最佳答案

问题很可能是因为您仅在主应用程序中连接套接字而导致包括 GUI 在内的整个进程停止。因此,解决方案最好是使用 subprocess 在单独的进程中运行套接字功能和聊天功能。模块和multiprocessing模块。

通过使用这些,您将在主 GUI 进程之外的不同进程中运行套接字应用程序,并且两者都将并行工作而不会停止主应用程序

关于python - PyQt:监听 ip、端口时窗口停止响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37696431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com