使用Python编写两段程序,客户端发送一张jpg图片,服务端接收这个图片
时间: 2024-04-08 07:34:03 浏览: 51
当然可以!以下是一个使用Python编写的客户端和服务器端程序示例,实现客户端发送一张jpg图片,服务端接收并保存这个图片:
**客户端程序:**
```python
import socket
# 服务器地址和端口
server_address = ('127.0.0.1', 8000)
# 图片路径
image_path = 'path/to/your/image.jpg'
def send_image():
# 创建TCP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
# 连接服务器
client_socket.connect(server_address)
# 读取图片数据
with open(image_path, 'rb') as file:
image_data = file.read()
# 发送图片数据
client_socket.sendall(image_data)
print('图片发送成功!')
except Exception as e:
print('图片发送失败:', str(e))
finally:
# 关闭套接字连接
client_socket.close()
# 调用函数发送图片
send_image()
```
**服务器端程序:**
```python
import socket
# 服务器地址和端口
server_address = ('127.0.0.1', 8000)
# 保存图片的路径
save_path = 'path/to/save/image.jpg'
def receive_image():
# 创建TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
# 绑定服务器地址和端口
server_socket.bind(server_address)
# 监听连接
server_socket.listen(1)
print('等待客户端连接...')
# 接收客户端连接
client_socket, client_address = server_socket.accept()
print('客户端已连接:', client_address)
# 接收图片数据
image_data = client_socket.recv(1024)
# 保存图片到本地文件
with open(save_path, 'wb') as file:
file.write(image_data)
print('图片接收成功!保存路径:', save_path)
except Exception as e:
print('图片接收失败:', str(e))
finally:
# 关闭套接字连接
server_socket.close()
# 调用函数接收图片
receive_image()
```
在客户端程序中,我们创建了一个TCP套接字,连接到指定的服务器地址和端口。然后,读取指定路径下的图片文件,并将图片数据通过套接字发送给服务器。
在服务器端程序中,我们创建了一个TCP服务器,绑定到指定的地址和端口。然后,它监听客户端的连接,并接受连接后的客户端套接字。当客户端发送数据时,服务器接收图片数据并保存到指定路径下的文件。
请将`server_address`修改为实际的服务器地址和端口,将`image_path`修改为你想要发送的图片文件路径,将`save_path`修改为你想要保存图片的路径。
希望这能帮到你!如果有其他问题,请随时提问。
阅读全文