Пример #1
0
def read_data(data):
    ba = ByteArray(data)
    #大端模式标准对齐方式
    ba.endian = "!"
    length = ba.readInt()

    print "length", length

    print "bytesAvailable", ba.bytesAvailable()

    #只用了1位字节存储 长度-128 - 127
    #业务大类
    actionName = ba.readByte()
    #具体业务类型
    type = ba.readByte()

    print "actionName", actionName
    print "type", type

    str = ba.readUTFBytes(3)
    print str


    i = ba.readInt()
    print i
Пример #2
0
 def writeData(self, id, data):
     length = len(data)
     #print id, length, data
     ba = ByteArray()
     ba.endian = '!'
     ba.writeInt(id)
     ba.writeInt(length)
     ba.writeUTFBytes(data)
     return ba.data
Пример #3
0
 def writeData(self, id, data):
     length = len(data)
     #print id, length, data
     ba = ByteArray()
     ba.endian = '!'
     ba.writeInt(id)
     ba.writeInt(length)
     ba.writeUTFBytes(data)
     return ba.data
Пример #4
0
def write_data(id, data):
    #获取协议号 + 内容 以后的长度
    length = get_bytes_len(id) + get_bytes_len(data)
    print id, length, data
    ba = ByteArray()
    ba.endian = "!"
    ba.writeInt(length)
    ba.writeInt(id)
    #print type(data)
    #根据data类型 写入ba
    write_data_in_bytes(ba, data)
    return ba.data
Пример #5
0
def write_data(id, data):
    #获取协议号 + 内容 以后的长度
    length = get_bytes_len(id) + get_bytes_len(data)
    print id, length, data
    ba = ByteArray()
    ba.endian = "!"
    ba.writeInt(length)
    ba.writeInt(id)
    #print type(data)
    #根据data类型 写入ba
    write_data_in_bytes(ba, data)
    return ba.data
Пример #6
0
def write_multi_data(id, params):
    length = get_bytes_len(id)
    for i in range(0, len(params)):
        length += get_bytes_len(params[i])
    ba = ByteArray()
    #大端模式标准对齐方式
    ba.endian = "!"
    ba.writeInt(length)
    ba.writeInt(id)
    #根据data类型 写入ba
    for i in range(0, len(params)):
        data = params[i]
        write_data_in_bytes(ba, data)
    return ba.data
Пример #7
0
def write_multi_data(id, params):
    length = get_bytes_len(id)
    for i in range(0, len(params)):
        length += get_bytes_len(params[i])
    ba = ByteArray()
    #大端模式标准对齐方式
    ba.endian = "!"
    ba.writeInt(length)
    ba.writeInt(id)
    #根据data类型 写入ba
    for i in range(0, len(params)):
        data = params[i]
        write_data_in_bytes(ba, data)
    return ba.data
Пример #8
0
 def decode(self, data):
     ba = ByteArray(data)
     ba.endian = "!"
     #判断长度
     #print 'self.tempDataBuffer', self.tempDataBuffer
     if self.tempDataBuffer == "":
         self.id = ba.readInt()
         print self.id
         length = ba.readInt()
         s = ba.readUTFBytes(ba.bytesAvailable())
         print 'length', length, len(s)
         #判断长度
         if len(s) < length:
             self.tempDataBuffer = s
         else:
             print "content", s
             return {"id": self.id, "content": s}
     else:
         s = self.tempDataBuffer + ba.readUTFBytes(ba.bytesAvailable())
         print 'hebing', s
         return {"id": self.id, "content": s}
Пример #9
0
 def decode(self, data):
     ba = ByteArray(data)
     ba.endian = "!"
     #判断长度
     #print 'self.tempDataBuffer', self.tempDataBuffer
     if self.tempDataBuffer == "":
         self.id = ba.readInt()
         print self.id
         length = ba.readInt()
         s = ba.readUTFBytes(ba.bytesAvailable())
         print 'length', length, len(s)
         #判断长度
         if len(s) < length:
             self.tempDataBuffer = s
         else:
             print "content", s
             return {"id":self.id, "content":s}
     else:
         s = self.tempDataBuffer + ba.readUTFBytes(ba.bytesAvailable())
         print 'hebing', s
         return {"id":self.id, "content":s}
Пример #10
0
def read_data(data):
    ba = ByteArray(data)
    #大端模式标准对齐方式
    ba.endian = "!"
    length = ba.readInt()

    print "length", length

    print "bytesAvailable", ba.bytesAvailable()

    #只用了1位字节存储 长度-128 - 127
    #业务大类
    actionName = ba.readByte()
    #具体业务类型
    type = ba.readByte()

    print "actionName", actionName
    print "type", type

    str = ba.readUTFBytes(3)
    print str

    i = ba.readInt()
    print i
Пример #11
0
def get_bytes_len(data):
    b = ByteArray()
    b.endian = "!"
    write_data_in_bytes(b, data)
    return len(b.data)
Пример #12
0
def get_bytes_len(data):
    b = ByteArray()
    b.endian = "!"
    write_data_in_bytes(b, data)
    return len(b.data)