当前位置: Python基础教程 > 13-网络编程-udp > 阅读正文

python的udp接收数据

2021.7.2.   1050 次   560字

udp接收数据实例

import socket

def main():
    # 1.创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGEAM)
    # 2.绑定一个本地端口
    udp_socket.bind(('', 8899))   # ip为空, 默认表示本机
    # 3.接收数据, 要设置最大值
    recv_data = udp_socket.recvform(1024)  #  设置最大字节
    rect_msg = recv_data[0]  # 获取数据内容, 数据格式往下参考
    # 4.使用数据
    print(rect_msg.decode("utf-8"))  # 对于中文需要解码
    $ 5.关闭套接字
    udp_socket.close()

if __name__=="__main__":
    main()

运行此程序, 会自动等待接收数据, 收到数据后会自动结束, 收到的数据格式如下

(b'字符串', ('ip地址', 端口))

如果要循环接收数据, 要设置一个循环, 不断接收

此外, 对于中文数据, 需要在发送时进行编码, 如utf-8编码, 然后在接收时解码

  • utf-8, 互联网上常用的编码
  • gbk, 这是windows平台对中文的默认编码

ps: 绑定ip时, 一般为空, 默认就是指本机, 可以手动输入, 但必须是本机ip, 绑定端口时不能与已分配的端口冲突, 已分配端口无法被抢占

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群