文件传送

#传送文件
#client 客户端
import socket
sock = socket.socket()
sock.connect((“IP”,8888))
while 1:
cmd = input(“请输入命令:”) #Pput 文件名
action,filename = cmd.strip().split(" “)
filesize = os.path.getsize(filename)
file_info={
“action”:action,
“action”:filename,
“action”:filesize,
}
file_info_json = json.dumps(file_info).encode(“utf-8”)
sock.send(file_info_json)
#确认服务段接收到文件信息
code = sock.recv(1024).decode(“utf-8”)
if code ==“200”:
#发送文件数据
with open(filename,‘rb’) as f:
for line in f:
sock.send(line)
else:
print(“服务器异常”)
#server 服务端
import socket
sock = socket.socket()
sock.bind(“IP”,8888)
sock.listen(5)
while 1:
print(“server os working…”)
conn,addr=sock.accept()
while 1:
data=conn.recv(1024).decode(“utf-8”)
file_info = json.loads(data)
print(“file_info”,file_info)
#文件信息
action=file_info.get(‘action’)
filename=file_info.get(‘filename’)
filesize=file_info.get(‘filesize’)
conn.send(b"200”)
#接收文件数据
with open(“put/”+filename,“wb”) as f:
recv_data_length = 0
while rece_data_length<filesize:
data = conn.recv(1024)
recv_data_length+=len(data)
f.write(data)
print(‘文件总大小:%s,成功接受%s’%(filesize,recv_data_length))
print(“接受成功”)

#socketserver模块(并发)
#服务器
import socketserver
class Myserver(socketserver,BaseRequestHandler):
def handle(self):
pass
#1.创建socket对象 2.self.socket.bind() 3.self.socket.listen(5)
socketserver.ThreadingTCPServer((“IP”,8888),Myserver)
server.serve_forever()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值