当前位置: 首页 > news >正文

设计开发建设网站平台北京seo代理商

设计开发建设网站平台,北京seo代理商,小程序 appid,17一起做网站app摘要 一到放假就杂事很多#xff0c;这次的作业比较复杂#xff0c;做了一个周#xff0c;进度又拖了。不过结果还不错。 正文 粘包 在上一节中#xff0c;如果连续发送过多数据#xff0c;就可能发生粘包。粘包就是两次发送的数据粘在一起被接收#xff0c;损坏了数据的…摘要   一到放假就杂事很多这次的作业比较复杂做了一个周进度又拖了。不过结果还不错。 正文 粘包   在上一节中如果连续发送过多数据就可能发生粘包。粘包就是两次发送的数据粘在一起被接收损坏了数据的完整性。解决方法有两种。   方案一     在发送多个数据之间添加接收确认。这样在完成一次发送以后只有接收到另一端的确认以后才会开始新的发送避免了粘包的发生。   方案二     首先将发送数据的大小发送给另一端另一端根据数据的大小接收。一次接收一次发送的数据量这样也就避免了数据的粘包。例子。 #方案1 #server f open(path, wb) for i in f:server.socket.send(i) f.close() server.socket.recv(1024) server.socket.send(b发送完毕) #client recv_data while True:data client.socket.recv(1024)if not data:breakrecv_data data client.socket.send(brecv over) other_data client.socket.recv(1024) #方案2 #server size os.path.getsize(path) server.socket.send(size.encode()) server.socket.recv(1024) f open(path, wb) for i in f:server.socket.send(i) f.close() server.socket.send(b发送完毕) #client size client.socket.recv(1024) client.socket.send(bstart) recv_data recv_size 0 while recv_size size:if size - recv_size 1024:single_size size - recv_sizeelse:single_size 1024data client.socket.recv(single_size)recv_size len(data)recv_data data other_data client.socket.recv(1024) View Code FTP   一个简单的FTP过程主要包含以下几个步骤。   1.读取文件名   2.检测文件是否存在   3.打开文件   4.检测文件大小文件名   5.发送文件大小 md5值给客户端   6.等待客户端确认   7.开始边读取数据边发送数据   8.md5确认   具体例子。   服务器 # 服务器端 import socket import os import hashlibserver socket.socket() server.bind((localhost, 9999)) server.listen()while True:conn, addr server.accept()print(new conn:, addr)while True:data conn.recv(1024)data data.decode()if not data:print(客户端已断开)breakcmd, filename data.split()print(filename)if os.path.isfile(filename):f open(filename, rb)m hashlib.md5()file_size os.stat(filename).st_sizeprint(file_size)conn.send(str(file_size).encode(utf-8))conn.recv(1024)for line in f:m.update(line)conn.send(line)print(md5:, m.hexdigest())f.close()conn.send(m.hexdigest().encode(utf-8)) View Code   客户端 # 客户端 import socket import hashlibclient socket.socket() client.connect((localhost, 9999))while True:cmd input().strip()if len(cmd) 0:continueif cmd.startswith(get):client.send(cmd.encode(utf-8))cmd_res_size client.recv(1024) # 接收长度print(文件大小 %s % (cmd_res_size.decode()))client.send(准备完毕开始发送数据.encode(utf-8))recv_size 0file_name cmd.split()[1]f open(file_name .new, wb)m hashlib.md5()while recv_size int(cmd_res_size.decode()):if int(cmd_res_size.decode()) - recv_size 1024:size 1024else:size int(cmd_res_size.decode()) - recv_sizedata client.recv(size)recv_size len(data) # 读取每次接收的数据f.write(data)m.update(data)#print(recv_size)else:file_md5 m.hexdigest()print(文件接收完毕, recv_size)f.close()recv_md5 client.recv(1024)print(file_md5, recv_md5.decode()) client.close() View Code SocketServer   SocketServer是Python的一个包它在socket的基础上封装可以更加简单的完成并发处理。   socketserver.TCPServer 继承BaseServer完成TCP   socketserver.UDPServer 继承TCPServer完成UDP   socketserver.UnixStreamServer 继承TCPServer完成Unix的TCP   socketserver.UnixDatagramServer 继承UDPServer完成Unix的UDP   使用socketserver的步骤   1.创建一个请求处理类并且这个类要继承BaseRequestHandler并且需要重写父类中的Handle()方法。   2.实例化一个Server类并且传递Server ip和1中创建的请求处理类给它。   3.server.handle_request()只处理一个请求 server.server_forever()处理多个请求永久执行。   4.调用server_close()关闭它。   BaseServer中的常用方法例子。 fileno() # 返回文件描述符 handle_request # 处理单个请求 serve_forever(poll_interval0.5) # 一直运行直到收到shutdown()请求每poll_interval检查一次后调用service_actions()结束 service_actions() # 结束操作 shutdown() # 停止信号 server_close() # 清除server address_family # 地址簇 RequestHandlerClass # 请求处理类 server_address # ip地址 socket # 同socket self.allow_reuse_adress # 允许重用地址 socket中socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) socket_type # socket使用的协议类型 self.setup() # 请求来之前 self.handle() # 请求来时 self.finish() # 请求处理之后 View Code 作业   1.用户加密认证   2.允许多个用户登陆   3.每个用户有自己的家目录不能互相访问   4.对用户进行磁盘配额可用空间不同   5.允许用户在ftp_server上随意切换目录   6.允许用户查看当前目录文件   7.允许用户上传下载文件保证文件一致性   8.传输过程显示进度条   作业转载于:https://www.cnblogs.com/zk71124720/p/9407286.html
http://www.pierceye.com/news/718069/

相关文章:

  • 中国做网站正邦自己建站模板
  • 网站设计公司如何盈利安阳做网站多少钱
  • 简述网站开发的主要阶段邢台短视频推广
  • 黑彩网站充值就给你做单子青岛高品质网站建设
  • 网站建设是固定资产还是列费用矿泉水瓶50种手工制作
  • 兰州 网站建设凡客优品家居
  • 国内免费网站服务器推荐夸克网页版
  • 旅游型网站开发网站开发语言分析
  • 上海 网站建设平台 补贴始兴县建设局网站
  • 湘潭学校网站建设 z磐石网络桥 网站建设
  • 自建外贸网站多少钱长春新冠最新情况
  • 网站seo是啥镜像wordpress博客
  • 广州手机网站建设电子商务平台经营者对于竞价排名的商品或服务
  • 宁波网站建设联系电话查询网站页面设计服务
  • 网站建设关键词分类如何建设品牌网站
  • 常平哪里有招计算机网站开发的商业网站制作
  • 手机关键词点击排名软件长春seo排名扣费
  • 海晏县公司网站建设湖南省郴州市汝城县
  • 蒙阴做网站做网站怎么提取视频无广告
  • 整个网站都在下雪特效怎么做贵州省住房与城乡建设厅网站
  • 腾讯合作网站建设有哪些公司自己的网站做防伪码
  • 网站制作完成ks刷粉网站推广马上刷
  • 网站注册域名位置网上买一个商标多少钱
  • 网站开发 无形资产门户网站搭建方案
  • 湘西北京网站建设网站建设好发信息网
  • 淄博公司网站建设网站设计编程有哪些
  • 如何获取网站访客qq如何知道一个网站用什么建设的
  • 快站app客户管理软件多少钱
  • 山西教育学会的网站建设工作做ppt课件的网站
  • 网站开发还有哪些班级网站如何去建设