1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 利用tcp协议实现大文件传输(socket)

利用tcp协议实现大文件传输(socket)

时间:2023-03-02 17:26:50

相关推荐

利用tcp协议实现大文件传输(socket)

server.py

import socketimport jsonimport structsk = socket.socket()sk.bind(('127.0.0.1', 2000))sk.listen()conn, addr = sk.accept()msg_len = conn.recv(4)dic_len = struct.unpack("i", msg_len)[0] # 防止粘包msg = conn.recv(dic_len).decode("utf-8")msg = json.loads(msg)with open(msg['filename'], 'wb') as f:while msg['filesize'] > 0:content = conn.recv(1024)msg['filesize'] -= len(content) # tcp协议将1024字节分开发送f.write(content)conn.close()sk.close()

client.py

import osimport jsonimport structimport socketsk = socket.socket()sk.connect(('127.0.0.1', 2000))# 文件名\文件大小abs_path = r'F:\个人文档\计算病理及其数字化切片组织形态学定量分析.docx'filename = os.path.basename(abs_path)filesize = os.path.getsize(abs_path)dic = {'filename': filename, 'filesize': filesize}str_dic = json.dumps(dic)b_dic = str_dic.encode("utf-8")mlen = struct.pack('i', len(b_dic))sk.send(mlen)sk.send(b_dic)with open(abs_path, mode='rb') as f:while filesize > 0:content = f.read(1024)filesize -= 1024sk.send(content)sk.close()

先运行server,py、后client.py

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。