首先我们要搭建一个UDP通信,首先我们就要知道什么UDP:
UDP用户数据报传输协议,它位于TCP/IP协议的传输层,是一种无连接的协议,它发送的报文不能确定是否完整地到达了另外一端。UDP广泛应用于需要相互传输数据的网络应用中,如QQ使用的就是UDP协议。在网络质量不好的情况下,使用UDP协议时丢包现象十分严重,但UDP占用资源少,处理速度快,UDP依然是传输数据时常用的协议。
我们简单来说,UDP就相当于我们发送短信一样,不管对方有没有回应,我们是发送出去了的,这就行了。
TCP和UDP的区别:
下面我放了一个图片,可以看到同在运输层还有TCP协议,那么TCP和UDP有什么区别?
之前我们说了,UDP就像发短信一样不管对方有没有收到或者回应我们是发送了这就行了,那么TCP和UDP相反,TCP就像我们打电话一样,要确定对方并且有回应,那么才算成功,从上面我们就可以看出来了,像比如说我们发短信,发消息我们可以用UDP来进行链接传输,但是像是通话之类的需要用户回应之类的,我们可以采用一个TCP来进行传输
好了,接下来步入正题吧,首先这里需要分成两个部分,第一个是建立一个服务端,第二个是建立一个客户端,这里我们用的是python的socket这个模块
注意:这里需要注意个事情,我们的先启动服务端的代码,客户端才能发送消息出去,要不然会报下面这个错误
服务端代码:
import socket server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) server.bind(("127.0.0.1",8888)) print("服务器已经启动") while True: data,client = server.recvfrom(1024) print("接受到客户端的消息",data.decode("utf-8")) server.sendto("我晓得,但是再见".encode("utf-8"),client)
客户端代码:
import socket client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) client.sendto("山有木兮木有枝 心悦君兮君不知".encode("utf-8"),("127.0.0.1",8888)) data,server = client.recvfrom(1024) print(data.decode("utf-8")) client.close()
运行结果:
大家在练习中有什么问题都可以加群询问:656721740