Client 客户端
import json, struct
from socket import *
client = socket(AF_INET, SOCK_STREAM)
client.connect(("192.168.11.78", 8080))
while True:
print("我是客户端,我已开机,感觉良好!")
file_path = input("请输入你要上传的文件路径:").strip()
if len(file_path) == 0: continue
def get_header(file_path):
with open(r"%s" % file_path, "rb")as f:
data = f.read()
size = len(data)
upload_dic = {
"name": file_path.split('\\')[-1],
"size": size,
"md5": "阿巴阿巴阿巴"
}
upload_json = json.dumps(upload_dic)
upload_bytes = upload_json.encode("utf8")
header = upload_bytes
return header, data
header, data = get_header(file_path)
client.send(header)
client.send(data)
print("Over!")
Server服务端
import json, struct
from socket import *
server = socket(AF_INET, SOCK_STREAM)
server.bind(("127.0.0.1", 8080))
server.listen(5)
while True:
print("我是服务器,我已开机,感觉良好!")
common, address = server.accept()
while True:
try:
message = common.recv(82)
if len(message) == 0: break
header_json = message.decode("utf8")
header_dic = json.loads(header_json)
name = header_dic["name"]
size = header_dic["size"]
md5 = header_dic["md5"]
data = common.recv(size)
with open(r"C:\Users\S\Desktop\%s" % name, mode="wb")as f:
f.write(data)
except Exception:
break