09-UDP广播

目标

  • 知道广播的概念

  • 能够使用UDP群发广播消息

什么是广播?

image-20180614151533944

1. 使用UDP的方式发送广播

广播地址(Broadcast Address)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址

IP地址的网络字段和主机字段全为1就是地址:255.255.255.255

所以,向 255.255.255.255 发送消息,就是发送广播消息
import socket

if __name__ == '__main__':
    # 建立udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    # 发送消息
    send_content = "大家好,我是渣渣辉~"

    # 把文本转为二进制数据
    send_data = send_content.encode("utf-8")

    # 设置允许发送广播
    udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)

    # 发送消息
    udp_socket.sendto(send_data, ("255.255.255.255", 9090))

    # 关闭套接字
    udp_socket.close()

我们在windows系统中开启网络调试助手,并且监听9090地址

image-20180614150142778

执行上面代码段 image-20180614145909099

image-20180614151142156

image-20180614151412276

1为能发送但不能接收(默认)
0为禁用
2为运行所有的组播功能即allmulti (为既可发送也可接收组播数据包)