首页 > 其他 > 详细

socket实现图片读取

时间:2020-03-05 21:45:37      阅读:64      评论:0      收藏:0      [点我收藏+]

一个位置的图片读取到另一个位置

import socket
import os

#先创建文件基本信息
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
#创建socket对象
service_socket = socket.socket()
#绑定地址
adddress = ("127.0.0.1",5757)
service_socket.bind(adddress)
#可以多少人同时在线
service_socket.listen(3)
#接收客户端信息(conn)表示客户端对象
client_conn,addr= service_socket.accept()
print("连接成功",client_conn)
print("连接成功",addr)
‘‘‘
接收客户端发送的打包信息并解析
客户端发过来的是三个信息以“|”隔开
data接收的信息是bytes型,只要转换str才能切分
‘‘‘
data = client_conn.recv(1024)
filename,filesize = str(data,"utf8").split("|")
print(filename,filesize)
filesize = int(filesize)
#图片放置文件位置,包含文件位置和名称
save_files =os.path.join(BASE_DIR,"copyfile",filename)

#接收发送的文件
with open(save_files,"ab") as f: #重一个位置写入文件信息
    writeNum = 0
    while writeNum != filesize:
        #先接收信息,再写入信息
        savefile = client_conn.recv(1024)
        f.write(savefile)
        writeNum += len(savefile)
import socket
import os
#创建socket对象
client_socket = socket.socket()
#绑定地址
address = ("127.0.0.1",5757)
#连接服务端
client_socket.connect(address)
‘‘‘
连接服务端后,向服务端发送打包的图片信息
1.先获取文件信息,文件位置,文件名称,文件大小,然后发送
2.发送内容包含指令cmd和需要复制的图片名称中间用“|”隔开
‘‘‘
#先创建文件基本信息
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
#文件获取文件具体位置和名称
path = os.path.join(BASE_DIR,"11.png")  #这个位置填写输入的图片名称
#获取文件名称
filename = os.path.basename(path)
#获取文件大小
filesize = os.stat(path).st_size
#将发送的信息打包
file_save = "%s|%s"%(filename,filesize)
#向服务端发送图片的信息
client_socket.sendall(bytes(file_save,"utf8"))
‘‘‘
打开文件
发送图片内容信息到服务端
每次循环发送

‘‘‘
with open(path,"rb") as f:  #重一个位置读取文件信息
    fileNmu = 0
    while fileNmu != filesize:
        #先读取信息,在发送信息
        readdata = f.read(1024)
        client_socket.sendall(readdata)
        fileNmu += len(readdata)

 

socket实现图片读取

原文:https://www.cnblogs.com/TKOPython/p/12422747.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!