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)
还没有任何评论哟~
