向服务器发送1个字节的数字

时间:2017-12-16 17:47:41

标签: python

我需要通过服务器 - 客户端架构中的套接字向服务器发送1字节数字。

1)如何将整数对象转换为1字节数(0..255或-127..127)

2)这段代码给了我14,所以这意味着整数对象需要14位?

{{1}}

3)我很感激与Python中的数据转换相关的一些网站链接

2 个答案:

答案 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)