python socket传输图片
时间: 2023-08-01 19:09:49 浏览: 48
你可以使用 Python 的 socket 库来传输图片。下面是一个简单的示例代码:
Server 端代码:
```python
import socket
# 创建一个 TCP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定 IP 地址和端口号
server_address = ('localhost', 8888)
server_socket.bind(server_address)
# 监听连接
server_socket.listen(1)
print('等待客户端连接...')
while True:
# 等待客户端连接
client_socket, client_address = server_socket.accept()
print('客户端已连接:', client_address)
# 接收图片数据
image_data = b''
while True:
data = client_socket.recv(1024)
if not data:
break
image_data += data
# 保存接收到的图片
with open('received_image.jpg', 'wb') as file:
file.write(image_data)
print('图片已保存')
# 关闭连接
client_socket.close()
break
# 关闭服务器 socket
server_socket.close()
```
Client 端代码:
```python
import socket
# 创建一个 TCP socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 服务器 IP 地址和端口号
server_address = ('localhost', 8888)
# 连接服务器
client_socket.connect(server_address)
print('已连接到服务器:', server_address)
# 读取图片数据
with open('image.jpg', 'rb') as file:
image_data = file.read()
# 发送图片数据
client_socket.sendall(image_data)
print('图片已发送')
# 关闭连接
client_socket.close()
```
在代码中,Server 端监听客户端连接,接收图片数据并保存到本地。Client 端读取图片数据并发送给服务器。确保将图片文件命名为 'image.jpg',并将代码中的 IP 地址和端口号设置为正确的值。
请注意,这只是一个简单的示例,可能不适用于大型图片或高并发场景。在实际应用中,您可能需要处理更多的异常情况,并进行更复杂的错误处理和数据校验。