31UDP黏包

Posted wyx666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了31UDP黏包相关的知识,希望对你有一定的参考价值。

1、server服务器端

import socket
sk = socket.socket(type=socket.SOCK_DGRAM) #DGRAM datagram
sk.bind((127.0.0.1,8080))       #只有服务端有的
                                                 #udp的server不需要进行监听也不需要建立连接
msg,addr = sk.recvfrom(1024) # 在启动服务之后只能被动的等待客户端发送消息过来,客户端发送消息的同时还会 自带地址信息
print(msg.decode(utf-8))
sk.sendto(bbye,addr)   # 消息回复的时候 不仅需要发送消息,还需要把对方的地址填写上

sk.close()

           

2、client客户端

import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
ip_port = (127.0.0.1,8080)  
# client端不需要connect 因为UDP协议是不需要建立连接的

sk.sendto(bhello,ip_port) # 直接了解到对方的ip和端口信息就发送数据就行了
ret,addr = sk.recvfrom(1024) # sendto和recvfrom的使用方法是完全和server端一致的
print(ret.decode(utf-8))

sk.close()

 

以上是关于31UDP黏包的主要内容,如果未能解决你的问题,请参考以下文章

黏包的原理 (tcp udp)

UDP协议和黏包

recv原理高阶版黏包解决方案基于UDP的socket通信

socket 黏包现象

Python全栈__编写UDP通信编解码类文件的上传远程执行命令黏包

黏包-黏包的成因解决方式及struct模块初识文件的上传和下载