我正在尝试创建可以通过 python 中的套接字进行通信的应用程序。我已经能够在控制台程序中实现这一点,并尝试在 WPF 中执行相同的操作。这是一个非常简单的程序,应该充当服务器,其中创建套接字,绑定到端口,然后侦听连接。我现在面临的问题是,每次我包含套接字接受连接的代码时,我的程序都会挂起。我试图在网上寻找解决方案,但每个人似乎都按照我正在做的方式完全相同。以前有人遇到过这个问题吗?如果是的话,你是如何解决的。
在此先感谢您的帮助。
这是代码:
import wpf
import socket
import sys
import clr
import System
HOST=''
PORT = 8888
from System.Windows import Application, Window
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
class MyWindow(Window):
def __init__(self):
wpf.LoadComponent(self, 'managementToolSimulator2.xaml')
def Button1_Click(self, sender, e):
pass
def Window_Loaded(self, sender, e):
s.bind((HOST,PORT))
s.listen(5)
self.ListBox1.AddText('Listening...')
while 1:
conn,addr=s.accept()
self.ListBox1.AddText('Got connection')
pass
if __name__ == '__main__':
Application().Run(MyWindow())
如果我运行没有该行的程序:
while 1:
conn,addr=s.accept()
self.ListBox1.AddText('Got connection')
它运行良好,但如果我包含该行,程序将挂起并且必须从任务管理器停止。
关闭服务器线程。
您不得在 GUI 事件处理程序中进行阻塞调用。 GUI 线程必须及时处理 Windows 消息 - 您不能只是在处理程序中阻止执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)