Python之网络编程一

网络编程

理论知识很重要,只有记忆和理解了理论,才能更好的组织代码逻辑的编写。

一:基础知识

1.生活中到处都是Client Server架构(C/S架构),浏览器就是Client端。

2.一台电脑装上操作系统之后,就可以玩单机游戏了,只要不联网,只能自己玩,想一起玩必须联网,进入互联网互相交流,交换信息。

3.互联网的核心就是一堆协议组成,协议是大家约定好的标准,大家都遵守。

4.OSI七层协议,这里记住五层就可以了

应用层     网络层    传输层     数据链路层     物理层

用户只能感知到应用层,搞清楚每层的协议,就基本理解了互联网通信的原理

每个上层依赖它的下一层,越往上越靠近用户,越往下越靠近硬件。

物理层:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。

数据链路层:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思,

    数据链路层的功能:定义了电信号的分组方式。

传输层:建立端口间的通信

网络层:ip协议找到网络中的计算机

应用层:用户使用的都是应用层,大家都可以开发应用程序,类别也是千差万别,数据也是千差万别。

更加详细的参考:https://www.cnblogs.com/linhaifeng/articles/5937962.html

二:Socket套接字

开发者从应用层组织数据,面向Socket就可以了开发了,无需了解下面层的具体协议如何组装,让socket去组装,你只需要准备原始数据即可。

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的。

分类

刚开始套接字用来一台计算机不同进程间通信

基于文件类型的套接字家族  AF_UNIX

基于网络类型的套接字家族   AF_INET  

我们只关心网络通信,因此只用AF_INET

三:目标

写一个基于socket同行的C/S架构的软件。

猜你喜欢

转载自www.cnblogs.com/gyxpy/p/12933468.html
今日推荐