Python网络编程
Python网络编程
- 什么是C/S架构、
- 计算机基础
- socket介绍
C/S架构
C指的就是Client(客户端软件),S指的是Server(服务端软件),本章的重点就是教大家写一个C/S架构的软件,实现服务软件与客户端软件基于网络通信。
计算机基础
作为一名应用开发程序员,我们开发的都是应用软件,而应用软件必须运行在操作系统之上,操作系统则运行在一堆硬件之上,应用软件是无法直接操作硬件的,应用程序对硬件的操作必须调用操作系统的接口,由操作系统操控硬件。
如客户端软件想要基于网络发送一条消息给服务端软件,流程是(https://www.processon.com/diagraming/5b0f5d79e4b068c2520a6497)
1.客户端软件产生数据,存放于客户端软件的内存中,然后调用接口将自己内存中的数据发送/拷贝给操作系统的内存中
2.客户端操作系统收到数据后,按照客户端软件指定的规则(协议),调用网卡硬件设备发送数据
3.网络传输数据
4.服务端软件调用系统接口,想要将数据从操作系统拷贝到自己的内存里
5.服务端操作系统收到指令后,使用与客户端相同的规则(协议)从网卡接收到数据,然后拷贝到服务端软件的内存中
socket介绍
引子
我们已经知道,假设我要写一个程序,给另一台计算机发送数据,必须通过TCP/IP协议,但是具体的实现过程是什么呢?我应该怎么操作才能把数据封装成TCP/IP的包呢?又执行什么指令才能把数据发送到对端机器上呢?此时,socket隆重登场,简而言之,socket这个东西就是干这个事情的,就是帮你把TCP/IP协议层的各种数据封装、数据发送、接受等通过代码已经给你封装好了,你只需要调用几行代码,就可以给别的机器发消息了。
socket介绍
什么是socket?
socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在socket接口后面,对用户来说,一组简单的接口就是全部。
socket抽象层(https://www.processon.com/diagraming/5b0f6b9de4b02e4b26ec3521)
上一篇: Win10限制上传和下载速度怎么办?