网络编程:套接字基于UDP的应用(二--广播)
数据包套接字:传输层基于UDP协议的通信
应用:
广播(broadcast)
一点发送多点接收
接听端只需监听发送端的端口就可以了
【发送广播】
from socket import *
from time import sleep
#设置广播地址 "<broadcast>"
dest = ('192.168.1.4',9229)
s = socket(AF_INET,SOCK_DGRAM)
#设置能够发送广播
s.setsockopt(SOL_SOCKET,SO_BROADCAST,1)
while True:
sleep(2)
print("开始发送广播")
s.sendto("今日多云".encode(),dest)
s.close()
【接收广播】
from socket import *
#创建数据报套接字
s = socket(AF_INET,SOCK_DGRAM)
#设置套接字可以接收广播
s.setsockopt(SOL_SOCKET,SO_BROADCAST,1)
#绑定端口
s.bind(('',9229))
while True:
try:
msg,addr = s.recvfrom(1024)
print("从{}获取信息:{}".format(addr,msg.decode()))
except (KeyboardInterrupt,SyntaxError):
raise
except Exception as e:
print(e)
s.close()