我正在研究Python项目(正如我在我的问题中经常提到的)。我的朋友在互联网连接部分编码,她遇到了问题。
我的朋友编码服务器和客户端,我们的程序也有一个GUI。然后,我的朋友创建一个新线程,在侦听连接和GUI过程之间分开。
我们的套接字代码如下所示
def start(self):
self.t = Thread( target = self.startServer )
self.t.start()
def stop(self):
self.socket.close()
self.t._stop()
def startServer(self):
try:
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.bind( (self.host, self.port ) )
print("\nBound to port: " + str(self.port) )
self.socket.listen(5)
except socket.error:
print("\nSocket connection error")
sys.exit(1)
while True:
print("\nListening at " + str(self.socket.getsockname()))
sc, sockname = self.socket.accept()
问题是当调用self.socket.close()时,我们得到了这个错误
有解决方案吗?
Ps.我的朋友不确定这是创建新线程的正确方法。原因是当按下开始和停止按钮(它是相同的按钮)时,它会显示它多次听的消息。
问题如下所示(我的朋友点击开始 - 停止 - 开始)。
感谢您的回答和建议。