2.通讯流程类似对讲机 只管发送不管对方是否接受到 甚至不关心对方在不在
1.买对讲机
2.固定频道
3.收发数据
1.买个对讲机
2.指定发送的频道
3.收发数据
3.什么是udp:指的是是用户数据包协议,属于传输层协议不要求可靠性,不要求分组顺序且传输的数据量较小,追求传输速度快。
4.与TCP区别:
不可靠传输
不需要建立连接
不会粘包
单次数据包不能太大
由于不需要建立 连接所以省去 TCP的listen()和accept()这两步
5.具体代码语法:
客户端:
不需要建立连接
收数据 recvfrom(缓冲区大小)
发数据 sendto(数据,地址)
import socket
client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# UDP 不需要建立链接
# 发送数据时 要指定接受方地址
client.sendto("hello".encode("utf-8"),("127.0.0.1",1688))
data,addr = client.recvfrom(1024)
print("收到来自%s的消息 : %s" % (addr,data))
client.close()
服务器端
服务器不需要监听 listen
不需要接收请求 accept
收数据 recvfrom(缓冲区大小)
发数据 sendto(数据,地址)
from socket import *
# 创建基于UDP的scoket 必须手动指定
server = socket(AF_INET,SOCK_DGRAM)
server.bind(("127.0.0.1",1688))
while True:
data,addr = server.recvfrom(1024)
print("收到来自%s的消息 : %s" % (addr,data))
server.sendto(data.upper(),addr)
# server.close()
# UDP 可以处理多个客户端 但是并不是真正的同时处理 而是按顺序处理 速度非常快 感觉像是同时处理 叫并发
# 并行 真正同时处理 想要真正的同时运行 必须由多个执行单位
http:// news.cctv.com /2019/05/29/ARTIXRqlqFBp59eECweiXTUU190529.shtml
协议名称 域名 文件路径
news.cctv.com
.com 顶级域名
cctv 二级域名
news 三级域名