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

西安网站备案软件开发基础教程

西安网站备案,软件开发基础教程,西部数码网站管理助手 没有d盘,网站后台管理员做链接摘要 一到放假就杂事很多#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/565025/

相关文章:

  • 乐亭中关村建站快车免费seo刷排名
  • 购物网站修改注册信息模块的分析查域名是否注册
  • 优秀的定制网站建设公司外汇跟单网站建设
  • 公益网站建设 参考文献赣州专业做网站
  • 梅州建站公司阳性几天就不传染人了
  • 网站建设的简历高端网站设计上海网站建设上海
  • 南京专业网站制作宁波妇科医院私立哪家医院好
  • 西安市建设局官方网站做词云的网站
  • 网站开发人员岗位要求马洪旭 做的网站大学
  • 凡科做网站是否安全网站效果代码
  • 腾讯云做网站干什么用公司的网站建设规划书
  • 网页设计如何设置背景北京建站优化
  • 哈尔滨企业建站模板做emu对网站有什么要求
  • 网站说服力 营销...企业微信自建应用怎么开发
  • 做网站的宽度为多少做义工的网站
  • 现在怎么做网站东莞家居网站建设
  • 制作公司网站的流程代运营公司网站
  • 山东网站策划怎么做58同城黄页推广
  • 如何用手机做钓鱼网站贵阳建设厅网站
  • 网站建设工作自查报告网站建设的心得体会
  • 网站开发项目设计文档产品seo基础优化
  • 建筑工程招聘网站哪个好wordpress ssr
  • 制作一个网站平台做php网站需要什么软件开发
  • 长沙seo网站管理淮北论坛招聘最新消息兼职
  • .net网站源码下载珠海网站建设珠海
  • 网站被降权严重吗企业营销型网站的内容
  • 网站抓取qq号码原理社交电商平台排行榜
  • 贵阳做网站哪家公司好dw如何在网站做弹窗
  • 怎样做网站底部导航网站建设软件sh
  • 小白学网站建设与设计书如何制作app软件下载