bluetoothservice.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:bitpay-brick 作者: javgh 项目源码 文件源码
def run(self):
        server_sock = self._init_server()
        server_sock.setblocking(0)

        while self.is_active:
            (rlist, _, _) = select.select(
                    [server_sock], [], [], SELECT_LOOP_INTERVAL)

            if not rlist:
                continue

            client_sock, client_info = server_sock.accept()
            print "Accepted connection from ", client_info
            try:
                # read length
                tx_length = read_varint32(client_sock)
                if tx_length > 2 ** 24:
                    raise IOError

                # transaction
                unpacker = struct.Struct('! %ss' % tx_length)
                body = client_sock.recv(unpacker.size, socket.MSG_WAITALL)
                (tx,) = unpacker.unpack(body)

                # submit
                r = requests.post(self.submission_url,
                        headers=TX_SUBMISSION_HEADERS, data=tx)

                # monkey patch ack
                payment_ack = PaymentACK()
                payment_ack.ParseFromString(r.content)
                payment_ack.memo = "ack"
                payment_ack_data = payment_ack.SerializeToString()

                # pass on ack
                write_varint32(client_sock, len(payment_ack_data))
                client_sock.send(payment_ack_data)
            except IOError:
                pass

            print "Bluetooth client disconnected"
            client_sock.close()
        server_sock.close()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号