网络编程
网络开发的架构:
-
C/s client/server
-
B/s Browser/server
- B/s架构更好
认识网络
-
网卡 -- mac地址
-
每台机器在网络中除了有一个mac地址生效,还有一个ip地址
-
有交换机和路由器
-
端口:通过某一个固定的端口定位到机器上的某一个应用
-
每一台机器有很多个端口,最大的端口是65535 范围是0--65535
交换机的工作方式:
-
单播\广播\组播
-
arp协议:通过ip找mac
-
交换机 --->广播 将要找的机器的信息发给局域网内的所有机器
-
交换机 ---->单播 返回要找的那台机器
-
交换机的工作机制: 只认识mac地址,广播\单播\组播
ip协议:
- ipv4: 4位点分十进制
- ipv6: 6位点分十六进制
路由器的工作机制:
- 路由表,认识ip地址
传递信息的方式:
- Tcp协议: 可靠的\面向连接的\慢
- UDP协议: 不可靠的\无连接的\快
TCP与UDP的区别
osi七层模型
TCP/IP五层协议
套接字(socket)初使用
-
基于TCP协议的socket
-
server端
-
import socket sk = socket.socket() sk.bind(('127.0.0.1',8898)) #把地址绑定到套接字 sk.listen() #监听链接 conn,addr = sk.accept() #接受客户端链接 ret = conn.recv(1024) #接收客户端信息 print(ret) #打印客户端信息 conn.send(b'hi') #向客户端发送信息 conn.close() #关闭客户端套接字 sk.close() #关闭服务器套接字(可选)
-
-
client端
-
import socket sk = socket.socket() # 创建客户套接字 sk.connect(('127.0.0.1',8898)) # 尝试连接服务器 sk.send(b'hello!') ret = sk.recv(1024) # 对话(发送/接收) print(ret) sk.close() # 关闭客户套接字
-
-