Python 套接字将大于 127 的整数值作为单个字节发送



我正在使用Python 3,我希望发送一个大于127的整数作为单个字节。正如预期的那样,我无法使用 chr(( 函数执行此操作,因为该函数将其转换为 2 个字节。当我使用 str(( 时,它会将其转换为我不想要的 3 个单独的字节。 我已经尝试过,但我似乎无法得到任何解决方案。

一般来说,你应该尽量保持对字节串(bytes(的面向字节的操作和对字符串(str(的面向文本(或至少是面向USV(的操作。因此,与其尝试将消息构造为单个最终编码的字符串:

message_identifier =  chr(50)
message_name = 'Hello '
message_data_size = '160'.encode().decode() # clueless here
frame = (message_identifier + message_name + (message_data_size)) # don't know what to do with message_data_size
byt = frame.encode()

当逻辑将边界从文本传递到字节时进行编码:

message_identifier = bytes([50])  # or b'x32', or b'2'
message_name = 'Hello '
message_data_size = bytes([160])
frame = message_identifier + message_name.encode('utf-8') + message_data_size

最新更新