Advertisement

UDP广播的发送与接收

阅读量:

UDP广播的发送方

复制代码
    from socket import *
    from icecream import ic
    dest = ('<broadcast>', 8080)  # 给所有计算器的8080端口发送广播。发广播要用UDP协议。将接收方的IP设为广播地址,只要接收方的8080端口打开,就可以接收信息
    s = socket(AF_INET, SOCK_DGRAM)  # 创建套接字对象。默认情况下套接字对象不允许发送广播数据,若需发送广播,则要修改设置
    s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)  # 重新设置套接字对象进行广播的固定写法
    s.sendto('不忘初心'.encode('utf-8'), dest)  # 发送数据
    while True:  # 循环接收他人的信息
    redata = s.recvfrom(1024)
    ic(redata)
    print(redata[0].decode('utf-8'))

UDP广播的接收方

复制代码
    from socket import *
    from icecream import ic
    s = socket(AF_INET, SOCK_DGRAM)
    s.bind(('', 8080))  # 引号内为空,表示本机IP,8080为指定的端口号
    redata = s.recvfrom(1024)
    ic(redata)
    print(redata[0].decode('utf-8'))
    s.sendto('牢记使命'.encode('utf-8'), (redata[1][0], redata[1][1]))
    s.close()

运行结果:

在这里插入图片描述
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~