分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

socket 上传文件代码

发布时间:2023-09-06 02:14责任编辑:顾先生关键词:暂无标签

server.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import socket
import os,hashlib

ip_port = (‘127.0.0.1‘,6969)
sk = socket.socket()
sk.bind(ip_port)
sk.listen(5)

while True:
???conn,address = sk.accept()
???while True:
???????print(‘等待新指令‘)
???????#获取客户端发来的操作指令
???????data = conn.recv(1024)
???????if not data:
???????????print(‘客户端已经断开‘)
???????????break
???????cmd,filename= data.decode().split()
???????if os.path.isfile(filename):
???????????#读取客户端指定的文件
???????????f=open(filename,‘rb‘)
???????????m = hashlib.md5()
???????????file_size = os.stat(filename).st_size
???????????print(‘file_size:‘,file_size)
???????????# 将客户端指定的文件大小返回客户端
???????????conn.send(str(file_size).encode(‘utf-8‘))
???????????#接收sk.send(b"ready to recv file")
???????????conn.recv(1024)
???????????for line in f:
???????????????#读取文件的内容,并修改成密文
???????????????m.update(line)
???????????????# 发送改成密文后的文件内容
???????????????conn.send(line)
???????????f.close()
???conn.close()


client.py
#!/usr/bin/env python
# coding:utf-8


import socket
import sys
import os

ip_port = (‘127.0.0.1‘, 6969)
sk = socket.socket()
sk.connect(ip_port)

while True:
???# 客户端输入要下载文件的路径,get开头
???cmd = input(‘path:‘).strip()
???if len(cmd) == 0:
???????continue
???if cmd.startswith(‘get‘):
???????# 发送操作指令
???????sk.send(cmd.encode())
???????file_size = sk.recv(1024)
???????print(‘file_size:‘,file_size)
???????# 发送准备好的信息
???????sk.send(b"ready to recv file")
???????file_total_size = int(file_size.decode())
???????receive_size = 0
???????#file_name =cmd.split()[1]
???????file_name = ‘hah.log‘
???????f = open(file_name,‘wb‘)
???????while receive_size <file_total_size:
???????????# 接收发送的密文,并写入新文件中
???????????data = sk.recv(1024)
???????????receive_size +=len(data)
???????????f.write(data)
???????else:
???????????print(‘file recv done‘)
???????f.close()

sk.close()


socket 上传文件代码

原文地址:https://www.cnblogs.com/yoyo008/p/9648036.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved