代码之家  ›  专栏  ›  技术社区  ›  chacoff

Qdatastream缓冲区:十六进制输出不正确

  •  0
  • chacoff  · 技术社区  · 1 年前

    在pyqt6的框架中,我试图填充一个缓冲区,该缓冲区将通过socket发送给对等端。我的问题是,我没有得到我期望的十六进制输出。

    以下是我所拥有的:

    header = [40, 4602, 2023, 9, 1, 11, 22, 30, 59]
    content = [65]
    message = header + content
    
    buffer = QByteArray()
    data_stream = QDataStream(buffer, QIODevice.OpenModeFlag.WriteOnly)
    data_stream.setByteOrder(QDataStream.ByteOrder.BigEndian)
    
    for value in message:
        data_stream.writeInt32(value)
    
    print(f'buffer: {buffer}')
    print(f'length: {buffer.length()}')
    

    列表中的第一个元素,即消息,它是40,因此,我期望类似0x28的东西,但我得到了“(”

    这是打印的输出:

    buffer: b'\x00\x00\x00(\x00\x00\x11\xfa\x00\x00\x07\xe7\x00\x00\x00\t\x00\x00\x00\x01\x00\x00\x00\x0b\x00\x00\x00\x16\x00\x00\x00\x1e\x00\x00\x00;\x00\x00\x00A'
    

    你知道这是怎么回事吗?,为什么我得到一个“(”?

    谢谢

    0 回复  |  直到 1 年前