Python 2.7忽略if not语句?



我正在创建一个简单的套接字聊天应用程序,我试图做一些事情来处理某人终止连接到服务器的客户端,但它似乎忽略了它,我通过远程主机异常强制关闭连接。

下面是一些代码

clients = []
class client(Thread):
def __init__(self, socket, address):
Thread.__init__(self)
self.sock = socket
self.addr = address
self.start()
def run(self):
while 1:
msg = self.sock.recv(1024).decode()
#This if not statement is ignored
if not msg:
clients.remove(socket)
print str(adress[0]) + ":" + str(adress[1]) + " disconnected"
quitm = str(adress[0]) + ":" + str(adress[1]) + " disconnected"
for client in clients:
client.send(quitm.encode())
socket.close()
break
print msg
for client in clients:
client.send(msg.encode())

我一直在寻找一些解决方案,但还没有找到。任何帮助都是感激的!!

如果另一端正常关闭连接,则表示recv()返回零字节。但是,如果另一端的事物在没有关闭连接的情况下终止,则认为是异常情况,由recv()引发异常表示。您需要使用try/catch块来处理该异常。

最新更新