python socket 二进制
时间: 2023-07-23 18:18:39 浏览: 136
Python的socket模块可以用于实现网络通信,其中涉及到二进制数据的传输。二进制数据在Python中可以通过bytes类型来表示,bytes类型是由0~255之间的整数构成的不可变序列。在socket通信中,数据通常是以二进制形式传输的,可以使用Python中的struct模块将数据打包成二进制格式,然后通过socket发送给对方。在接收方,需要使用相同的结构体格式解包收到的二进制数据。例如,以下代码将一个整数打包成二进制格式并发送给对方:
```python
import socket
import struct
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 建立连接
s.connect(('127.0.0.1', 8888))
# 将整数打包成二进制格式
data = struct.pack('i', 123)
# 发送二进制数据
s.sendall(data)
# 关闭连接
s.close()
```
在接收方,可以使用以下代码接收并解包二进制数据:
```python
import socket
import struct
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 监听端口
s.bind(('127.0.0.1', 8888))
s.listen(1)
# 接收连接
conn, addr = s.accept()
# 接收二进制数据
data = conn.recv(1024)
# 将二进制数据解包成整数
num = struct.unpack('i', data)[0]
print(num)
# 关闭连接
conn.close()
s.close()
```
阅读全文