我需要通过服务器 - 客户端架构中的套接字向服务器发送1字节数字。
1)如何将整数对象转换为1字节数(0..255或-127..127)
2)这段代码给了我14,所以这意味着整数对象需要14位?
{{1}}
3)我很感激与Python中的数据转换相关的一些网站链接
答案 0 :(得分:1)
您可以发送二进制字符串。您可以构造如下字符串:
from struct import pack
pack('b', x)
然后,这将构造一个二进制字符串,其中包含一个字符(字节),格式为'b'
。它指定我们以签名表示法打包一个字节(字符)(unsigned将为'B'
)。
然后我们获得:
>>> pack('b', 2)
b'\x02'
请注意,带有字节字符串的对象会更大:
>>> sys.getsizeof(pack('b', 2))
34
现在我们可以设置一个套接字,并将数据发送到服务器,例如通过TCP / IP连接:
import socket
from struct import pack
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('127.0.0.1', 8080)) # set IP address and port of the connection
sock.sendall(pack('b', 2)) # send one byte of data through the connection
答案 1 :(得分:1)
python中的整数没有特定的大小。要发送整数,您必须使用例如struct.pack
:
import struct
x = 2
bytes = struct.pack('b', x)