网络通讯——udp套接字
1. 软件开发架构
- C/S架构
- client 客户端
- server 服务端
- B/S架构
- browser 浏览器
- server 服务器
2.网络通信的概念
- 使用网络能够把多方连接在一起,然后可以数据传递
- 网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信
- 网络是美国人发明的,最初用于军方 阿帕网,推广为民用
- 局域网:是指在某一区域内由多台计算机连城的计算机组
- 广域网:不同区域之间的局域网互联就形成的广域网
- 注意:“局域网" 和”广域网“只是一个相对的概念
IP地址的概念
地址就是用来标记地点的
IP地址的作用
用来在网络中标记一台电脑,比如 192.168.1.1;在本地局域网上是唯一的
IP地址分类
- 分为两大类:IPV4/IPV6
- PV4:由四组数组成,每一组数的最小值为0,最大值为256,因此,当今有256256256*256 -> 256的4次方 -> 4,294,967,296,即42亿多个ip
- IPV6:未来的趋势,IPV4已经将近枯竭,IPV6号称全世界的每一粒商字都可匹配为唯一的IP而不冲突
端口的概念:
与写信相对应,IP地址仅仅是定位到了这封信邮到哪个地方,但是还不知道谁来收, 端口就是标记谁来收的
端口号:
端口是通过端口号来标记的 端口只有整数,范围是从0到65535
1.网络模型的概念
- OSI七层模型(应表会传网数物)
7.应用层
6.表示层
5.会话层
4.传输层
3.网络层
2.数据链路层
1.物理层
- TCP/IP五层模型(将OSI七层模型的应用层, 表示层, 会话层抽象为一层)
5.应用层
4.传输层
3.网络层
2.数据链路层
1.物理层
- TCP/IP四层模型(将TCP/IP五层模型中的数据链路层和物理层合并为网络接口层(数据链路层))
4.应用层
3.传输层
2.网络层
1.网络
应用层:与网络相关的程序通过网络与其他程序通信使用的数据格式规范。
传输层:解决诸如端到端可靠性(数据是否已经到达目的地)和保证数据按照正确的顺序到达这样的问题。TCP、UDP都是传输层协议。
网络层:解决在一个单一网络上传输数据包的问题。
数据链路层:它是数据包从一个设备的网络层传输到另外一个设备的网络层遵循的规范
语法格式介绍
import socket
socket .socket(AddressFamily,Type)
# 创建一个udp套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 可以使用套接字收发数据
# udp_socket.sendto("hahahah", 对方的ip以及port)
udp_socket.sendto(b"hello world", ("192.168.57.65", 8080))
# 关闭套接字
udp_socket.close()
# 可以使用套接字收发数据
# udp_socket.sendto("hahahah", 对方的ip以及port)
# udp_socket.sendto(b"hahahah------1----", ("192.168.57.65", 8080))
udp_socket.sendto(send_data.encode("utf-8"), ("192.168.57.65", 8080))
bind():绑定地址信息
recvfrom:接收数据
# 1. 创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 2. 绑定一个本地信息
localaddr = ("", 7788)
udp_socket.bind(localaddr)
# 3. 接收数据
recv_data = udp_socket.recvfrom(1024)
# 4. 打印接收到的数据
print(recv_data)
# 5. 关闭套接字
udp_socket.close()
浙公网安备 33010602011771号