1.网络开发2个架构
C / S架构: client客户端和server服务器端
优势: 能充分发挥PC机的性能
B / S架构: browser浏览器和server服务器隶属于C/S架构
B / S架构统一了应用的接口.
2.计算机之间的通信
同一台电脑上两个py程序通信 : 打开一个文件
两个电脑如何通信:连一个网线
通信的事:
多个电脑通信 : (电脑1(源)要找电脑2(目标))
电脑1首先发送一个请求帧,其中包含(我的ip是192.168.1.1,我的mac地址是xxxxxxxx,我要找ip地址为192.168.1.2的主机),将此请求发送给交换机.
交换机要广播这条消息给其他所有的主机
目标主机接收到消息后,对比发现自己就是被找的主机,回复给交换机信息(我的ip地址是192.168.1.2,我的mac地址是yyyyyyyyy,请回复给ip地址为192.168.1.1,mac地址为xxxxxxx的主机),交换机单播形式返回给源主机
3 一些知识
1 mac地址(网卡硬件厂商给的) :是一个物理地址,全球唯一, 类似于身份证
2 ip地址: 是一个四位点分十进制,它标识了计算机在网络中的位置.类似于学号
知道mac地址不一定知道这台电脑在哪里,在哪个位置,ip地址可以知道计算机在哪里
3 交换机的通信方式:
广播: 吼一嗓子
单播: 一对一
组播: 一对多
4 arp协议 : 通过目标ip地址获取目标mac地址的一个协议.
5 端口 : 操作系统为本机上每一个运行的程序都随机分配一个端口,其他电脑上的程序可以通过端口获取到这个程序, ip地址+ 端口能唯一找到某台电脑上的某一个服务程序
(0-65535 0-1023尽量不要用)
6路由器 : 连接不同网段 ,路由
7 网关: 类似于一个局域网的出口和入口
8 网段 : 一个局域网内的ip地址范围
9 子网掩码 : 子网掩码 &ip地址得到网段
10 osi 五层模型:
应用层 : http,https,ftp
传输层 : tcp / udp 四层交换机四层路由器
网络层 : ip协议路由器三层交换机
数据链路层 : arp协议以太网交换机网卡网桥
物理层 : 传输电信号集线器网线光纤
4 . socket
sk = socket.socket(family = AF_INET, type=SOCK_STREAM)
family :(有两种参数)
一种: AF_UNIX基于文件类型的套接字(早期socket是源自于unix系统而研发的一个功能,主要是为了同一台电脑上,多个程序直接通信) unix系统的中心思想是 :一切皆文件
一种 : AF_INET基于网络类型的套接字
type:
一种是基于TCP协议 SOCK_STREAM, 可靠的,面向连接的,面向字节流形式的传输方式
一种是基于UDP协议 SOCK_DGRAM, 不可靠的,不面向连接的,面向数据报的传输方式,但是它快
5使用tcp协议客户端和服务端的一次连接
tcp连接
客户端代码如下:
代码块
# 第二次 通信
import socket
sk = socket.socket()
sk.connect(('192.168.1.29',18080))# 连接
sk.send('中文'.encode('utf-8')) #发送信息
sk.close() #关闭
服务端代码如下:
代码块
import socket
sk = socket.socket()# 我买一个新手机
sk.bind(('192.168.1.29',18080))# 我买一个手机卡
sk.listen()# 开机
conn,addr = sk.accept()# 等待朋友给我打电话
print(conn,addr)
msg= conn.recv(6)# 接受数据,接受10个字节
print(msg.decode('utf-8'),addr)
conn.close()# 挂断电话
sk.close() # 关机
6 交换机和路由器区别
交换机的主要功能是组织局域网,经过交换机内部处理解析信息之后,将信息以点对点,点多对的形式,发送给固定端
路由器的主要功能: 进行跨网段进行数据传输,路由选择最佳路径.
EX:
如果你需要将多台电脑连接到一根网线,用交换机即可
如果你只有一个外网ip,但是你有好多台电脑需要上网,用路由器即可
别跑,点个赞再走