步骤
- 启动服务端程序等待连接。
- 启动客户端程序与服务端建立连接。
- 客户端输入要发送的图片文件路径(文件名)。
- 客户端将图片文件名和文件大小打包压缩成指定格式的数据,并发送给服务端。
- 服务端接收到图片文件名和文件大小后,创建新的文件名,开始接收并写入图片数据。
- 客户端循环读取图片文件数据,发送给服务端。
- 服务端不断接收并写入图片数据,直到接收完整个文件。
- 客户端发送完文件后,关闭Socket连接。
- 服务端接收完文件后,关闭Socket连接。
服务端
import os.path # 导入os.path模块,用于处理文件路径
import socket # 导入socket模块,用于创建Socket连接
import struct # 导入struct模块,用于处理二进制数据
import sys # 导入sys模块,用于退出程序
def socket_service_image():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建TCP/IP Socket对象
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 设置Socket的地址重用选项
s.bind(('192.168.9.100', 6666)) # 绑定Socket到指定的IP地址和端口
s.listen(10) # 开始监听连接请求
except socket.error as msg:
print(msg)
sys.exit(1)
print("Wait for Connection..........................") # 打印等待连接的提示信息
while True:
s