参考文章
代码
import time, socket, threading, os
from tkinter import *
'''
当TTL的值为 0 时,指定数据报应停留在本地主机中;
当TTL的值为 1 时,指定将数据报发送到本地局域网中;
当TTL 的值为 32 时,意味着只能将数据报发送到本站点的网络上;
当TTL 的值为 64 时,意味着数据报应被保留在本地区;
当TTL 的值为 128 时,意味着数据报应被保留在本大洲;
当TTL 的值为 255 时,意味着数据报可被发送到所有地方;
'''
roomnummap = {
'1': '230.1.1.1',
'2': '230.1.1.2',
'3': '230.1.1.3',
'4': '230.1.1.4'
}
myname = socket.getfqdn(socket.gethostname())
myaddr = socket.gethostbyname(myname)
# 定义本机IP地址
SENDERIP = myaddr
# 定义本地端口
SENDERPORT = 30000
# 定义本程序的多点广播IP地址
MYGROUP = '230.1.1.1'
# 通过type属性指定创建基于UDP协议的socket
s = socket.socket(type=socket.SOCK_DGRAM)
# 将该socket绑定到0.0.0.0的虚拟IP
s.bind(('0.0.0.0', SENDERPORT)) # ①
# 设置广播消息的TTL(Time-To-Live) 64 本地局域网
s.setsockopt(socket.IPPROTO_IP