Python3 & 使⽤UDP的⽅式发送⼴播

⼴播地址(Broadcast Address)是专⻔⽤于同时向⽹络中所有⼯作站进⾏发送的⼀个地址。
在使⽤TCP/IP 协议的⽹络中,主机标识段host ID 为全1 的IP 地址为⼴播地址。
而IP地址的⽹络字段和主机字段全为1就是地址:255.255.255.255。
由此可见,向 255.255.255.255 发送消息,就是发送⼴播消息。

发送广播代码:

from socket import *
import time
#1.设置目标地址
dest = ('255.255.255.255',9090)
broadcast_socket = socket(AF_INET,SOCK_DGRAM)
#2.设置能够发送广播
broadcast_socket.setsockopt(SOL_SOCKET,SO_BROADCAST,True)
#3.发送广播
while True:
   time.sleep(2)
   print('消息从这里发出.....')
   broadcast_socket.sendto('大喇叭广播开始了'.encode("GBK"),dest)
s.close()

接收广播代码:

from socket import *

HOST = '172.28.40.185'
PORT = 9090
ADDR = (HOST,PORT)

#创建套接字
udp_socket = socket(AF_INET,SOCK_DGRAM)
udp_socket.bind(ADDR)
#消息收发
while True:
   try:
       data,addr = udp_socket.recvfrom(1024)
       print('接收到广播信息:',data.decode("GBK"))
   except (KeyboardInterrupt, SyntaxError):
       raise
   except Exception as e:
       print(e)
udp_socket.close()
image.png

image.png

推荐阅读更多精彩内容