介绍:传输图片主要使用了python内置的struct
模块,它提供了一种处理二进制数据的工具,包括解析、打包和处理各种类型的数据。
服务端
1.先导入需要的包
2.创建套接字和配置套接字
3.使用struct.calcsize计算文件信息的大小,然后接收图片文件信息;解压filename和filesize;循环接收图片数据,在接收过程中逐渐写入文件;关闭文件流;使用sock.close()关闭与客户端的连接。
客户端
1.导入需要的包
2.用到while循环读取发送图片
(1)连接到服务端知道地址和端口;连接失败except打印错误信息,并使用sys.exit(1)推出程序;
(2)用户输入要发送的图片路径;使用os.path.basename获取文件名,os.stat(filepath).st_size获取文件大小。
(3)将文件名和文件大小以128sq格式进行打包;使用s.send(fhead)将打包后的文件信息发送给服务端。
(4)以二进制方式打开要传输的图片文件;使用s.send(data)将读取的数据以二进制格式发送给服务端。