初探网络
一.架构
1.c\s
客户端(client):享受服务端提供的服务
服务端(server):给客户端提供服务
2.b\s(c\s中的一种)
浏览器(Browser):浏览器打开
服务端(server):给可无端提供服务
二.网络通信的整个流程
集线器:将所有插在集线器上的电脑连通起来(广播风暴)
交换机:集线器的升级版
网卡:接收电信号
网络插口:插网线的地方
mac地址(物理地址): 50-7B-9D-94-0D-17 全球唯一的,前三位厂商编号,后三位生产流水号
ip地址:192.168.12.136 四个点分十进制组成(同一局域网内是唯一的)
DHCP协议:自动动态分配IP地址
子网掩码:计算是否属于同一网段,同一子网
DNS服务器:域名解析,用于把域名转换成ip地址的
arp协议:通过ip地址获取mac地址
路由器:管理网络,连通外网,并且路由转发,就是转发消息
路由器协议:计算转发消息的最优路径
端口:电脑上的程序用的,创建电脑上程序的唯一标识
网关:把关用的,所有对外的请求都要经过网关
NAT技术:网络地址转换,内网ip地址转换为外网ip地址
三.socket模块初识
1.server大概流程
先创建一个socket对象,再设置一个ip和端口绑定在socket对象,等待接听.
import socket server = socket.socket() ip_port = ("192.168.12.136",8888) server.bind(ip_port) server.listen(3) conn,addr = server.accept() while 1: from_client_msg = conn.recv(1024).decode("utf-8") print("收到信息:",from_client_msg) if from_client_msg == "bye": break to_client = input("请输入你要回复的信息:") conn.send(to_client.encode("utf-8")) if to_client == "bye": break conn.close() server.close()
2.client大概流程
先创建一个socket对象,然后拨ip和端口,再接通
import socket client = socket.socket() server_ip_port = ("192.168.12.136",8888) client.connect(server_ip_port) while 1: to_server = input("请输入你要发的信息:") client.send(to_server.encode("utf-8")) if to_server == "bye": break from_server_msg = client.recv(1024).decode("utf-8") print("收到回复:",from_server_msg) if from_server_msg == "bye": break client.close()