0
私は、asyncoreを使用してPythonでソケットTCPサーバーでした。私のhandle_read関数は:Python Asyncoreは、クライアントの切断時にhandle_readを実行します。
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のバイトオブジェクトを必要とし」これはhandle_read機能はときにクライアントの切断を実行していることを示しています。 これは正常ですか?どのように状況を処理するのですか?
ありがとうございます!