摘要:
前言 经过前一篇博客的学习了解了 Unix 和 Windows 系统创建进程的方式了,对于 Unix系统来说,会把父进程的数据直接拷贝一份到子进程的内存空间;而 Windows 系统会重新加载一遍父进程的代码. 那么在 python 中怎么创建进程呢?其实也是调用了操作系统提供的接口,像 Unix 阅读全文
摘要:
前言 该系列为并发编程,在几乎所有的编程语言中,并发始终是绕不开的坎,可以说学习一门编程语言,学好了并发就说明这门语言你学的还可以.所以接下来就让我们好好看看 python 的并发是怎么实现的吧. 在学习并发之前,有必要学习一下计算机操作系统发展史,因为可以实现并发可操作系统的发展是分不开的. 操作 阅读全文
摘要:
前言 在上篇文章解决了 TCP 和 UDP 并发的问题,是通过一个 socketserver模块实现的,那么这个模块到底做了什么可以实现并发的效果呢? socketserver 源码分析 进入 socketserver 中查看注释: 翻译如下: 通用套接字服务类 该模块试图捕获定义服务器的各个方面 阅读全文
摘要:
前言 在上一篇文章中我们学习了 基于 TCP 套接字的服务端和客户端通信,并解决了粘包的问题,解决粘包问题的思路很简单,就是确保接受方能够把数据收取干净,发多少,就收多少. 出现粘包的问题:原因有两个,一个是接收数据量少于发送数据量;一个是因为为了优化 TCP 的传输效率,使用了 Nagle算法,当 阅读全文
摘要:
前言 经过之前三篇文章的学习我们大致了解了互联网是如何基于五层协议进行通信了,由应用层产生数据,然后进行封装,依次经过传输层,网络层,数据链路层的封装最后由物理层发送电信号进行数据的传输,在接收端首先由物理层接收到字节型的数据,然后拆包,验证 MAC 地址, IP 地址和端口,最后由目标应用获取数据 阅读全文
摘要:
在之前两篇文章我们已经大概了解了互联网的工作原理,知道了一个数据包的诞生与结束中间经历的过程,那么在这篇博客我们将了解一个稳定可靠地 TCP 连接是怎么产生的,它的数据传送有什么优点和缺点? 该博客将重点介绍 传输层的 TCP 协议建立连接和断开连接的过程. UDP 因为不是可靠的连接所以就不重点介 阅读全文
摘要:
六 网络编程(一)总结 首先对网络编程(一)做个总结:我们现在知道互联网通信其实就是发送数据包与接收数据包.电脑 A 向电脑 B 发送一个数据包, B 收到然后回复一个数据包,才实现了电脑之间的通信.数据包的结构,基本是下图的形式: 想要发送这个数据包需要知道两个地址: 1. 对方的 MAC 地址 阅读全文
摘要:
一 客户端/服务端架构 1. 硬件 C/S 架构 2. 软件 C/S 架构 互联网处处是 C/S 架构的 如一个网站就是服务端,浏览器是客户端( B/S 架构) 1. 服务端需要遵循的原则: 1. 服务端与客户端都需要有惟一的地址,但是服务端的地址必须固定/绑定 2. 对外一直提供服务,需要稳定运行 阅读全文
摘要:
异常之问 1. 什么是异常? 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止)在Python 中,错误触发的异常如下: Traceback 为异常的追踪信息 NameError 为异常的类型 name 'a' is not 阅读全文
摘要:
最开始对名称空间的了解是在学习函数的时候,那时候知道了作用域的查找顺序,以及全局名称空间和局部名称空间,产生疑惑的时候为学递归的时候,那时候还没有名称空间这个概念,只知道递归有个最大深度,那时候以后递归产生的名称空间是一层套一层的,以及类里面的名称空间,所以产生了深究名称空间的想法,这才诞生了这篇博 阅读全文