博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络编程之FTP服务端与客户端
阅读量:7104 次
发布时间:2019-06-28

本文共 1675 字,大约阅读时间需要 5 分钟。

#ftp_serverimport socketimport structimport jsonimport osimport hashlibserver=socket.socket()server.bind(('192.168.15.50',8000))server.listen(5)while 1:    print('sever is working.......')    conn,addr=server.accept()    while 1:        file_info_length_pack=conn.recv(4)        file_info_length=struct.unpack('i',file_info_length_pack)[0]        file_info_json=conn.recv(file_info_length).decode('utf-8')        file_info=json.loads(file_info_json)        action=file_info.get('action')        file_name=file_info.get('file_name')        file_size=file_info.get('file_size')        md5=hashlib.md5()        with open('put/'+file_name,mode='wb')as f:            recv_data_length=0            while recv_data_length 

  

#ftp_clientimport socketimport structimport osimport jsonimport hashlibclient=socket.socket()client.connect(('192.168.15.50',8000))while 1:  cmd=input("请输入命令").strip()  action,file_name=cmd.split(' ')  file_size=os.path.getsize(file_name)  file_info={      'action':action,      'file_name':file_name,      'file_size':file_size  }  file_info_json=json.dumps(file_info).encode('utf-8')  ret=struct.pack('i',len(file_info_json))  client.send(ret)  client.send(file_info_json)  md5=hashlib.md5()  with open(file_name,mode='rb')as f:      for line in f:          client.send(line)          md5.update(line)      response1=client.recv(1024).decode('utf-8')      if response1=='OK':          print('上传完成')  client.send(md5.hexdigest().encode('utf-8'))  response2=client.recv(1024).decode('utf-8')  if response2=='OK':      print('经对比文件传输无误')      break  else:      print('传输过程中,文件改变,请重新传输')client.close()

  

转载于:https://www.cnblogs.com/PythonMrChu/p/9721035.html

你可能感兴趣的文章
POJ 1050 To the Max
查看>>
浅析微信支付:(余额提现)企业付款到微信用户零钱或银行卡账户
查看>>
2-9
查看>>
SpringMVC (四)MultiActionController
查看>>
unity_粒子系统
查看>>
初识linux内核漏洞利用
查看>>
HDU - 6393 Traffic Network in Numazu(树链剖分+基环树)
查看>>
HDU 3826 Squarefree number
查看>>
python数据分析实战---基础准备
查看>>
elasticsearch内存优化设置
查看>>
从键盘上连续录入一批整数,比较并输出其中的最大值和最小值,当输入数字0时结束循环...
查看>>
mysql不同端口的连接
查看>>
递归 正则表达式 杨辉三角
查看>>
转载 - sql分页优化
查看>>
比较好的Dapper封装的仓储实现类 来源:https://www.cnblogs.com/liuchang/articles/4220671.html...
查看>>
2018焦作区域赛E. Resistors in Parallel
查看>>
WebService之Axis2(2):复合类型数据的传递
查看>>
第十一次作业
查看>>
CSVN部署安装,实现web管理svn
查看>>
Methods of Applied Mathematics
查看>>