我是python中使用asyncore的socket TCP服务器。我的句柄读取功能是:
def handle_read(self):
data = self.recv(50)
'''interpretar os comandos:
operação: Ligar/Desligar Bomba, Ligar/Desligar Aquecedor, Alterar velocidade da bomba
Modo: trocar de modo automático para remoto
Armazenamento: ativar ou desativar o armazenamento de dados para o trend e
também apagar dados
'''
if len(data) < 2: #comandos digitais
try:
process_commands(data)
except Exception as err:
print(str(err))
else: #comando analogico
try:
ld = json.loads(data.decode('utf-8'))
bytescommand = pack('f',ld['pump_speed'])
bus.write_block_data(arduinoAddress,53,list(bytescommand))
except Exception as err:
print(str(err))
finally:
pass
听着,我测试接收到的数据来执行函数。但是当客户端断开连接时,程序返回:
“char格式需要长度为1的bytes对象”
这表示在客户端断开连接时执行handle\ u read函数。 正常吗?我如何处理这种情况?你知道吗
非常感谢!你知道吗
这是个正常的电话。当对等方关闭其套接字(或者简单地用shuwr关闭它)时,read调用立即返回0字节。你知道吗
因此,您的
handle_read
应该为套接字上的文件结尾做好准备:def句柄读取(自身):
相关问题 更多 >
编程相关推荐