1,网络的概念
网络编程的目的
为打基础
了解一些网络的基础知识
简单了解一些底层的网络通信
大致内容
1,网络的概念
2,基于原生的网络模块来实现通信
3,完成一些简单的程序
4,了解一些协议的特点,扬长避短
1,网络的概念
1,引言
上学时用的学号:临时的编号\可以变化的
身份证号:一个人的唯一标识\不变的
2,在电脑上的不变的和变化的
不变的:mac地址 能够唯一标识这台机器的出厂时就有的,具有唯一性
变化的:IP地址 能够更好地更方便的找到机器的网络的地址,通过网络ip可以确定你的物理地址
局域网:用于网络和用户的通信
交换机:交换机下就是一个局域网,交换机只认识mac地址,可以广播,单播和组播(一部分发消息一部分不发)
工作方式:arp协议,地址解析协议,通过一台机器的IP地址获得机器的mac地址用到了广播,单播。
在一个局域网中靠‘喊’来寻找,先将一个消息发给局域网下的所有电脑(广播),只有一台电脑回复了交换机并且将自己的mac地址发给了交换机,这个时候双方都知道了对方的mac地址,交换机就可以和这一台电脑进行单独的数据交流(单播)
网段:192.168.12.0 192/168/12每一段都代表不同的含义,也就是缩小范围
广域网:由多个局域网组成,用于局域网之间的通信
路由器,网关:可以解析IP地址,并且有内存可以记录
3,IP地址
ipv4:
由4位4段点分十进制的内容 例如:192.168.12.88
每一位只能表示0-255
ipv4可以表示的范围:0.0.0.0---255.255.255.255 IP地址是有限的
公网地址:需要申请购买的IP地址 公网通讯依赖路由器
内网地址:保留字段 内网通讯依赖交换机
192.168.0.0 --- 192.196.25.5255 内网地址
172.16.0.0 ---- 172.31.255.255
10.0.0.0 ---- 10.255.255.255
特殊的IP地址
172.0.0.1 本地回环地址 自己访问自己 测试的时候用
自己的IP地址查看:Windows:ipconfig Linux:ifconfig
192.168.12.0:这个开头的IP地址只能装配255台计算机 网关使用一个IP地址,如果想要装500台机器,就只能使用192.168.0.0这个地址,那么这时候就分不清楚192.168.12.1和192.168.13.1是不是一个局域网内的IP地址了,这个时候就衍生出了子网掩码
子网掩码:
大部分都是255或0系列每一段不是255就是0,子网掩码也是一个IP地址,用来判断两个机器在不在同一个局域网内
判断方法
IP地址a: 192.168.12.1
IP地址b: 192.168.13.1
子网掩码:255.255.255.0
子网掩码和IP地址一起进行一种暗谓语计算
192.168.12.1
IP地址a的二进制:11000000.10101000.00001100.00000001
255.255.255.0
子网掩码二进制: 11111111.11111111.11111111.00000000
IP地址a的二进制与子网掩码的二进制进行位与计算(相同位全为1才是1)
ob 11000000.10101000.00001100.00000001 = 192.168.12.1
IP地址b的二进制:11000000.10101000.00001101.00000001
IP地址b的二进制与子网掩码的二进制进行位与计算
ob 11000000.10101000.00001101.00000001 = 192.168.13.1
得到的结果相同就是在同一个局域网下的IP地址
+ ipv6:
由6位6段冒分十六进制的内容 例如:aaaa48:bbbb12:d4c6b2a2:ddd4739a:e589a45f:aa4f3b2e
ipv6可以表示的范围:0:0:0:0:0:0: ---- FFFFFF:FFFFFF:FFFFFF:FFFFFF:FFFFFF:FFFFFF
4,端口
虚拟的概念 用来确认机器上具体程序的
端口的范围:0 --- 65535
我们访问服务器获得的端口是随机的,服务器发数据给我们是固定的
概念整理
1,局域网
交换机:
在同一个局域网内的机器由交换机负责通信
交换机只认识mac地址
可以完成广播 组播和单播
单播 -- mac地址(在网卡上,全球唯一)
路由器
局域网之间的通信
提供网关ip,同一个局域网的所有机器共享一个网关
我们不能访问除了本局域网之外的其他内网IP地址
子网掩码
用来判断两台机器是否在同一个局域网中
协议
IP地址协议:
ipv4协议
ipv6协议
mac地址:arp协议:通过ip找mac
端口(port):用来确认一台机器上的应用
2,CS和BS架构
1,C/S架构:
-
client:客户端
-
有多个想开就开想关就关需要自己安装
-
-
server:服务端
-
只有一个全天开着不需要自己安装
-
-
cs架构的优点:
-
可以离线使用
-
功能更加完善
-
安全性更高
-
python中的CS架构
client.py 客户端
'''
必须先启动服务端
'''
import socket
sk = socket.socket()
sk.connect(('127.0.0.1', 9000))
msg = sk.recv(1024) # 接收服务端发送的内容
print(msg)
sk.send(b'byebye') # 向客户端发送内容
sk.close() # 断开连接
servser.py 服务端
import socket
sk = socket.socket() # 创建一个server端的对话
# 127.0.0.1:9000也是自己的IP地址
sk.bind(('127.0.0.1', 9000)) # 给server端绑定一个ip地址和端口 申请操作系统的资源
sk.listen() # 可以开始监听(接收)
for i in range(10):
conn, addr = sk.accept() # 建立连接 conn是连接 conn里存储的是一个客户端和server端的连接信息
print('conn:', conn)
conn.send(b'hello') # 向客户端发送内容
msg = conn.recv(1024)
print(msg)
conn.close() # 挥手 断开连接 整个服务不关闭还可以和其他的客户端连接
sk.close() # 关闭整个服务 归还申请的操作系统的资源
2,B/S架构:
百度,谷歌,码云,访问的信息被展示在网页上的都是bs架构
-
browser:浏览器
-
只需要一个网址
-
-
server:服务端
-
B/S架构也是C/S架构的一种
-
bs架构的优点:
-
不用安装就可以使用
-
统一pc端入口
-
以后开发的趋势就是bs架构
-
更多内容可以查看自己学python的过程,简单笔记。-CSDN博客
更多内容可以查看自己学python的过程,简单笔记。-CSDN博客
更多内容可以查看自己学python的过程,简单笔记。-CSDN博客