摘要: 目录一、手工操作——穿孔卡片二、批处理——磁带存储2.1 联机批处理系统2.2 脱机批处理系统三、多道程序系统3.1 多道程序设计技术3.2 多道批处理系统四、分时系统五、实时系统六、通用操作系统七、操作系统的进一步发展7.1 个人计算机操作系统7.2 网络操作系统7.3 分布式操作系统八、操作系统 阅读全文
posted @ 2019-11-22 22:51 ABDM 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 一 Python中RPC框架 自带的:SimpleXMLRPCServer(数据包大,速度慢) 第三方:ZeroRPC(底层使用ZeroMQ和MessagePack,速度快,响应时间短,并发高),grpc(谷歌推出支持夸语言) 二 SimpleXMLRPCServer使用 服务端 from xmlr 阅读全文
posted @ 2019-11-22 21:55 ABDM 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 目录一、项目地址二、文件上传-断点续传三、目录结构四、client.py五、server.py5.1 文件的多种状态六、conf/settings.py七、lib/common.py八、log/log.log九、db 一、项目地址 https://github.com/nickchen121/ftp 阅读全文
posted @ 2019-11-22 19:29 ABDM 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 目录 一、基于TCP协议 1.1 server类 1.2 request类 1.3 继承关系 1.4 服务端 1.5 客户端 1.6 客户端1 二、基于UDP协议 2.1 服务端 2.2 客户端 2.3 客户端1 三、socketserver源码分析 3.1 源码总结 一、基于TCP协议 基于tcp 阅读全文
posted @ 2019-11-22 19:10 ABDM 阅读(726) 评论(0) 推荐(0) 编辑
摘要: 目录 一、网络编程小结 二、网络架构及其演变过程 2.1 单机架构 2.2 CS架构 2.3 BS架构 三、互联网和互联网的组成 3.1 教材版 3.2 科普版 四、大白话OSI七层协议 4.1 物理层 4.2 数据链路层 4.3 网络层 4.4 传输层 4.5 应用层 五、Socket抽象层 六、 阅读全文
posted @ 2019-11-22 19:05 ABDM 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 目录 一、UDP套接字简单示例 1.1 服务端 二、客户端 三、UPD套接字无粘包问题 3.1 服务端 3.2 客户端 四、qq聊天 4.1 服务端 4.2 客户端1 4.3 客户端2 4.4 运行结果 一、UDP套接字简单示例 1.1 服务端 import socket server = sock 阅读全文
posted @ 2019-11-22 19:04 ABDM 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 目录 一、解决粘包问题(low版) 1.1 服务端 1.2 客户端 1.3 为何low 二、补充struct模块 2.1 简单使用 三、解决粘包问题(Nick版) 3.1 使用struct模块创建报头 3.2 服务端 3.3 客户端 四、TCP协议粘包问题分析 4.1 服务端 4.2 客户端 4.3 阅读全文
posted @ 2019-11-22 18:33 ABDM 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 目录一、什么是粘包?二、TCP发送数据的四种情况三、粘包的两种情况3.1 服务端3.2 客户端3.3 服务端3.4 客户端四、补充问题一:为何TCP是可靠传输,udp是不可靠传输五、补充问题二:send(字节流)和recv(1024)及sendall 一、什么是粘包? 注意:只有TCP有粘包现象,U 阅读全文
posted @ 2019-11-22 18:32 ABDM 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 目录 一、服务端 二、客户端 一、服务端 from socket import * import subprocess server = socket(AF_INET, SOCK_STREAM) server.bind(('127.0.0.1', 8000)) server.listen(5) pr 阅读全文
posted @ 2019-11-22 18:31 ABDM 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 目录一、Socket抽象层 一、Socket抽象层 我们知道两个进程如果需要进行通讯最基本的一个前提是能够唯一标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的IP地址可以唯一标示主 阅读全文
posted @ 2019-11-22 18:30 ABDM 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 目录 一、什么是Scoket 二、套接字发展史及分类 2.1 基于文件类型的套接字家族 2.2 基于网络类型的套接字家族 三、套接字工作流程 3.1 服务端套接字函数 3.2 客户端套接字函数 3.3 公共用途的套接字函数 3.4 面向锁的套接字方法 3.5 面向文件的套接字的函数 四、基于TCP协 阅读全文
posted @ 2019-11-22 18:29 ABDM 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 目录一、背景描述二、常用的熟知端口号三、TCP概述四、TCP报文首部五、TCP连接的建立(三次握手)六、TCP四次挥手七、面试题7.1 为什么客户端最后还要等待2MSL?7.2 为什么建立连接是三次握手,关闭连接确是四次挥手呢?7.3 如果已经建立了连接,但是客户端突然出现故障了怎么办? 一、背景描 阅读全文
posted @ 2019-11-22 18:28 ABDM 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 目录一、物理层二、数据链路层2.1 以太网协议2.2 Mac地址2.3 广播地址三、网络层3.1 IP协议详解3.1.1 IP地址的两部分3.2 子网掩码详解3.3 IP数据包详解3.4 ARP协议详解四、传输层4.1 TCP协议4.2 UDP协议4.3 TCP报文4.4 TCP三次握手和四次挥手五 阅读全文
posted @ 2019-11-22 18:27 ABDM 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 目录一、互联网的组成(教材版)二、互联网的组成(科普版)2.1 互联网的硬件组成2.2 互联网的软件组成 一、互联网的组成(教材版) 互联网的拓扑结构非常复杂 ,并且在地理位置上覆盖了全球,从工作方式上看,可以划分为两大块: 边缘部分:这部分由所有连接在互联网上的主机组成。这部分是用户直接使用的,用 阅读全文
posted @ 2019-11-22 18:26 ABDM 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 目录一、单机架构二、CS架构2.1 CS架构要求2.2 面试题:数据放在服务端和客户端的利与弊?三、BS架构3.1 两种BS架构四、CS架构和BS架构区别 一、单机架构 应用领域: 植物大战僵尸 office 二、CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿, 阅读全文
posted @ 2019-11-22 18:25 ABDM 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 目录 一、什么是单例模式 二、为什么用单例模式 三、单例模式(类内部定义静态方法) 四、单例模式(装饰器) 五、单例模式(元类) 一、什么是单例模式 单例模式:基于某种方法实例化多次得到实例是同一个 二、为什么用单例模式 当实例化多次得到的对象中存放的属性都一样的情况,应该将多个对象指向同一个内存, 阅读全文
posted @ 2019-11-22 17:28 ABDM 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 目录 一、面向对象高级小结 1.1 isinstance,issubclass 1.2 反射 1.3 call 1.4 new 1.5 元类 二、单例模式 2.0.1 利用类的绑定方法的特性 2.0.2 利用装饰器 2.0.3 利用元类(正宗的) 一、面向对象高级小结 1.1 isinstance, 阅读全文
posted @ 2019-11-22 17:27 ABDM 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 目录 一、引言 二、什么是元类 三、为什么用元类 四、内置函数exec(储备) 五、class创建类 5.1 type实现 六、自定义元类控制类的创建 6.1 应用 七、__call__(储备) 八、__new__(储备) 九、自定义元类控制类的实例化 一十、自定义元类后类的继承顺序 十一、练习 一 阅读全文
posted @ 2019-11-22 17:24 ABDM 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 目录 一、上下文管理协议 二、模拟open 三、优点 我们知道在操作文件对象的时候可以这么写 with open('a.txt') as f: '代码块' 上述叫做上下文管理协议,即with语句,为了让一个对象兼容with语句,必须在这个对象的类中声明__enter__和__exit__方法 一、上 阅读全文
posted @ 2019-11-22 17:21 ABDM 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 目录一、__module__二、__class__ # lib/aa.py class C: def __init__(self): self.name = 'SB' # index.py from lib.aa import C obj = C() 一、__module__ __module__ 阅读全文
posted @ 2019-11-22 17:20 ABDM 阅读(41) 评论(0) 推荐(0) 编辑