python中网络编程
网络编程软件架构介绍:
C/S:客户端,服务端
B/S:浏览器,服务端
# 常见应用:
1、手机端看着感觉是c/s架构其实更多的是b/s架构,例如微信小程序,支付宝第三方接口
2、pc端:b/s比较火
# 本质是b/s其实也是c/s:
我们在使用的b/s架构比如说浏览器可以通过浏览器和服务器做交互操作,但是浏览器本省也是一个客户端,所以说也是c/s架构。
# 服务端和客户端的区别:
1、服务端可以不间断24小时提供服务。
2、客户端想使用的时候就连接服务端。
@学习网络编程的目的是什么:
是为了开发b/s架构的软件
需要学习:
1、并发编程,
2、前端,
3、数据库,
4、框架
# 实现远距离沟通的第一个条件就是:物理连接介质(电线,通过电线的高低电频模拟二进制0和1进行传递数据)
# 重点:
OSI七层协议(模型):
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
#也可以分为五层协议,其中应用层、表示层、会话层共同划分为应用层
应用层
传输层
网络层
数据链路层
物理连接层
1、物理层:
实现计算机之间物理连接,传输的数据都是0、1二进制
利用电传递信号的原理是:高低电频
2、数据链路层(以太网协议):
1、规定了二进制的数据分组方式(一段数据转换成二进制字符规定了到哪分隔)
2、规定了只要是介入互联网的计算机都必须有一个网卡
网卡上都有一个固定的编号(成为经常称呼的mac地址):
1、每块网卡上的地址都是全球唯一的
2、长度是48位2进制,由12位16进制表示:前6位表示厂商编号,后6位表示生产流水号
3、网卡地址也被成为MAC地址
### 单一的以太网协议通信弊端:
1、发送消息都是广播通信,容易造成广播风暴
### 交换机:没有交换机,电脑组建局域网只能添加多个网口,有了交换机,解放了电脑网口,一台电脑一个网口就可以满足需求了。总结起来就是可以通过网卡把多个电脑连接起来的设备。可以组建成局域网
3、网络层(ip协议):
固定了计算机必须有一个ip地址:
ip地址特点:点分十进制
版本:ipv4和ipv6
ip地址范围(ipv4为准):0.0.0.0——255.255.255.255
ip地址可以跨越局域网访问
ip地址是能够在网络中标识计算的唯一标识符
4、传输层(常见端口协议):
tcp、udp都是基于端口工作的
计算机之间的通信其实是计算上面的应用程序之间进行的通讯
端口(port):是一个基于网络通信协议应用程序在一台计算机上的唯一表示
端口范围:0——65535
注意:其中0—1024端口通常归操作系统使用
建议:写软件端口最好在:8000以后
常见应用端口:
flask框架:默认框架端口:5000
django框架:8000
mysql数据库:3306
redis数据库:6379
# 一台计算机上同一时间一个端口只能被一个程序使用
###### ip地址:用来标识计算机接入互联网的唯一标识
port:唯一标识计算机上某个应用程序
ip+port:能够用来标识全世界独一无二的一台计算机在某个应用程序
# 扩展:
arp:可以查看ip地址和mac地址的对应关系

5、应用层(http协议,ftp协议)
######传输层tcp协议(流式协议、可靠协议)
三次握手:建立连接

四次回收:释放连接

python中网络编程的更多相关文章
- python中网络编程基础
一:什么是c\s架构 1.c\s即client\server 客户端\服务端架构. 客户端因特定的请求而联系服务器并发送必要的数据等待服务器的回应最后完成请求 服务端:存在的意义就是等待客户端的请求, ...
- python中网络编程之线程
网络编程之线程 什么是线程? 程序的执行线路.每个进程默认有一条线程.线程包含了程序的具体步骤. 多线程就是一个进程中有除主线程(默认线程)外还有多个线程. 线程与进程的关系(进程包含线程,而线程依赖 ...
- Python中网络编程对 listen 函数的理解
listen函数的第一个参数时SOCKET类型的,该函数的作用是在这个SOCKET句柄上建立监听,至于有没有客户端连接进来,就需要accept函数去进行检查了,accept函数的第一个参数也是SOCK ...
- Python中网络编程对socket accept函数的理解
在服务器端,socket()返回的套接字用于监听(listen)和接受(accept),这个套接字不能用于与客户端之间发送和接收数据. accept()接受一个客户端的连接请求,并返回一个新的套接字, ...
- Python高级网络编程系列之第一篇
在上一篇中我们简单的说了一下Python中网络编程的基础知识(相关API就不解释了),其中还有什么细节的知识点没有进行说明,如什么是TCP/IP协议有几种状态,什么是TCP三次握手,什么是TCP四次握 ...
- python之网络编程
本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道.FIFO.消息队列) 同步(互斥量.条件变量.读写锁.文件和写记录锁.信号量) 共享内存(匿名的和具名的) 远程过程调用 ...
- python基础网络编程--转
python之网络编程 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道.FIFO.消息队列) 同步(互斥量.条件变量.读写锁.文件和写记录锁.信号量) 共享内存(匿名的 ...
- python 基础网络编程2
python 基础网络编程2 前一篇讲了socketserver.py中BaseServer类, 下面介绍下TCPServer和UDPServer class TCPServer(BaseServer ...
- python 基础网络编程1
python 基础网络编程1 Source code: Lib/socketserver.py lib的主目录下有一个sockserver.py文件, 里面是python基本的网络编程模型 共有一个b ...
随机推荐
- git合并常见冲突
如果一个文件在服务器上已经做了修改,然后在本地开发中又做了一些修改的时候,再发布这个文件时很容易造成代码冲突,错误如下, error: Your local changes to the follow ...
- NameNode与DataNode的工作原理剖析
NameNode与DataNode的工作原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS写数据流程 >.客户端通过Distributed FileSyst ...
- 010-1 Socket地址族AddressFamily
AddressFamily地址组成员 成员名称 说明 AppleTalk AppleTalk 地址. Atm 本机 ATM 服务地址. Banyan Banyan 地址. Ccitt 对于 CCITT ...
- RabbitMQ installation
以windows环境测试 Erlang http://www.erlang.org/downloads 下载并安装 运行时软件 Erlang OTP 21.3 Windows 64-bit Binar ...
- Java SE API —— 【Math 】之【BigInteger】类
目录 概述 构造方法 BigInteger(byte[] val) 概述 不可变的任意精度的整数.提供了模算术.GCD 计算.质数测试.素数生成.位操作以及一些其他操作. 算术运算的语义完全模仿 Ja ...
- request.getParameterValues 出现 [Ljava.lang.String;@ 错误
在实现简单的本地登录系统时,需要把page1.jsp的表单显示在page2.jsp中. 其中获取page1.jsp表单的办法就是在页面1的<form>中加入action="pag ...
- Flask 之东方不败一
1,flask的初始 flask是Python的一个轻量级的web框架,相当于django而言. 知识点Python 三大主流web框架的对比 1.Django 主要特点是大而全,集成了很多组件,例如 ...
- textarea高度自适应(转载)
原文地址:https://blog.csdn.net/itzhongzi/article/details/73949712
- Tomcat实现反向代理
实验环境搭建: web server Director: 192.168.11.131(host-only) 192.168.1.114(桥接) 安装好Apache ...
- [insight] debug
python: 1. print理解流程 print('xy1') print('xy2') 可以更好地跟踪函数的执行流程,分析代码 2. 用python库 import pdb; pdb.set_t ...