コード例 #1
0
ファイル: client.py プロジェクト: CNLHC/SSB-Web
async def client(loop:IOLoop):
    try:
        print("try to connect {0:s}:{1:s}".format(args.host,args.port))
        stream = await clientObj.connect(args.host,args.port) #type:tornado.concurrent.futures.Future
        stream.set_nodelay(True)
        async def handle():
            while True:
                command=Q.get().split(' ')
                act=command[0]
                if act=='p':
                    print(goodsTable)
                elif act=='s':
                    good=goodsList[int(command[1])]
                    RFID = bytes.fromhex(good[0])
                    msg =SSCEncoder.SSCFrameEncoder(RFID,CartID,op,opData)
                    print("sengMessage:",binascii.b2a_hex(msg))
                    await  stream.write(msg)
                elif act=='d':
                    msg = command[1].encode()
                    await  stream.write(msg)

        def waitKey():
            while True:
                Q.put_nowait(input('>'))
                

        loop.add_callback(handle)
        loop.run_in_executor(None,waitKey)

    except StreamClosedError :
        print("error connecting, try in 5 sec")
        await gen.sleep(5)
        loop.add_callback(functools.partial(client,loop))