摘要: 1、基于tcp 服务端: import socketserver # 通信循环 class MytcpHandler(socketserver.BaseRequestHandler): def handle(self): while True: try: data = self.request.re 阅读全文
posted @ 2019-11-12 21:24 zh_小猿 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 目标:让服务端能够支持高并发+高性能一、 操作系统发展史 多道技术(*****) 产生背景:想要在单核下实现并发 多道技术的核心: 1、空间上的复用(具体指的是内存中同时读入多道程序,多道程序的内存空间是物理隔离) 2、时间上的复用(复用cpu的时间) 切换+保存状态=》并发 切换: 1、遇到IO切 阅读全文
posted @ 2019-11-12 20:04 zh_小猿 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 服务端: import socket server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) server.bind(('127.0.0.1',8080)) while True: res,client_addr=server.recvfrom( 阅读全文
posted @ 2019-11-09 09:48 zh_小猿 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 1、C/S B/S架构(*****) c:client s:server b:browser 学习目标:开放一个客户端软件和服务端软件,两者基于网络通信 2、什么是网络?(*****) 1、物理连接介质 2、互联网协议(计算机界的英语) 3、OSI七层协议(**) C/S B/S 应(应、表、会): 阅读全文
posted @ 2019-11-05 20:52 zh_小猿 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 1、property property是一种特殊的属性,可实现把函数名变为属性名使用。它可以在不改变类接口的前提下使用存取方法 (即读值和取值) 来修改数据的属性,property类有3个方法getter(读操作)、setter(赋值操作)、deleter(删除操作),分别把对应的操作 绑定到指定的 阅读全文
posted @ 2019-11-05 15:57 zh_小猿 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 1、IO介绍 对于一个network IO (这里我们以read举例),它会涉及到两个系统对象,一个是调用这个IO的process (or thread),另一个就是系统内核(kernel)。当一个read操作发生时,该操作会经历两个阶段: #1)等待数据准备 (Waiting for the da 阅读全文
posted @ 2019-11-04 19:10 zh_小猿 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 服务端: 客户端: 阅读全文
posted @ 2019-11-02 19:34 zh_小猿 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 要解决粘包问题: TCP:流式协议 特点: 1、数据流没有开头也没有结果,像水流一样 2、TCP协议有一个nagle算法, nagle算法会将数据量较小,并且时间间隔较短的数据合成一条数据发送, 这么做可以减少网络IO次数,进而提升传输效率 1.struct模块 #1、把整型数字转成bytes类型 阅读全文
posted @ 2019-11-02 16:57 zh_小猿 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 1、Greenlet greenlet可以实现两个任务之间的来回切换,但遇到IO会阻塞,不会切(使用这个模块之前需要在电脑命令提示符中输入 pip3 install greenlet 进行安装) 例如: 打印结果: egon eat 1alex play 1egon eat 2alex play 2 阅读全文
posted @ 2019-11-01 21:06 zh_小猿 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 协程目的: 1、单线程下实现并发:协程 解决方案:一个任务运行的过程中把它打断(保存此时的状态)切换到另一个任务中,运行一段时间再切换回来,反复来回切换 注:并发指的是多个任务看起来是同时运行的 并发实现的本质:切换+保存状态 并发、并行、串行: 并发:看起来是同时运行,切换+保存状态 并行:真正意 阅读全文
posted @ 2019-11-01 20:55 zh_小猿 阅读(115) 评论(0) 推荐(0) 编辑