我有这个功能来检测套接字连接的状态(连接或断开)检测:当插座被通过sock.recv断开,socket.timeout
def connection_status(self):
try:
sock.settimeout(2)
connection_status = sock.recv(32)
print("Status: Connected")
self.label_connection_status['text'] = 'Status: Connected'
self.label_connection_status['fg'] = 'green'
except socket.timeout:
connection_status = ""
print("Status: Disconnected")
self.label_connection_status['text'] = 'Status: Disconnected'
self.label_connection_status['fg'] = 'red'
self.master.after(3000, self.connection_status)
但有一个问题吧。当我连接到服务器(在我的情况下,三星电视,其遥控应用程序),它几次垃圾邮件“状态:连接”,但几秒钟后,它变成“状态:断开连接”(但仍然连接...)如果我将一些数据发送到服务器(三星电视),它会再次变为“已连接”,几秒后它又会变为“已断开连接”。和我停止服务器(三星电视),它只输出“状态:连接”!
您的电视每隔3秒钟或更少时间不断流32个字节吗? –
@BryanOakley我不清楚知道,但如果我设置更少的字节它输出“状态:连接”更高的时间,所以..是啊,问题可能在电视上,但如何适应电视代码? – PepinCZ