python 发送接收float数组
时间: 2023-10-16 15:09:18 浏览: 83
可以使用 Python 中的 struct 模块来实现 float 数组的发送和接收。下面是一个示例代码:
发送端:
```python
import socket
import struct
HOST = '127.0.0.1'
PORT = 8888
# 创建 TCP socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
# 发送 float 数组
float_array = [1.23, 4.56, 7.89]
data = struct.pack('f'*len(float_array), *float_array)
s.sendall(data)
s.close()
```
接收端:
```python
import socket
import struct
HOST = '127.0.0.1'
PORT = 8888
# 创建 TCP socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
# 等待连接
conn, addr = s.accept()
# 接收 float 数组
data = conn.recv(1024)
float_array = struct.unpack('f'*int(len(data)/4), data)
print(float_array)
conn.close()
s.close()
```
在发送端,我们使用 struct.pack() 方法将 float 数组打包成字节串,然后通过 socket 发送出去。在接收端,我们使用 struct.unpack() 方法将接收到的字节串解包成 float 数组。需要注意的是,打包和解包时,要按照相同的格式进行。在本例中,我们使用 'f' 来表示单精度浮点数,'*' 表示重复多次。
阅读全文