Python 基于UDP多播的网络聊天室

这篇博客介绍了如何使用Python通过UDP多播协议创建一个网络聊天室,引用了多个参考文章并提供了相关代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文章

参考文章1

参考文章2

参考文章3

代码

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值