使用Python中的PySide和Socket的WinError 10004

时间:2014-05-21 04:52:04

标签: python multithreading sockets

我正在研究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()时,我们得到了这个错误

WinError 10004

有解决方案吗?

Ps.我的朋友不确定这是创建新线程的正确方法。原因是当按下开始和停止按钮(它是相同的按钮)时,它会显示它多次听的消息。

问题如下所示(我的朋友点击开始 - 停止 - 开始)。

enter image description here

感谢您的回答和建议。

0 个答案:

没有答案