开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 328|回复: 6
打印 上一主题 下一主题
收起左侧

[精币悬赏] 求助一个局域网UDP广播问题!

[复制链接]
结帖率:84% (26/31)
跳转到指定楼层
楼主
发表于 2025-5-25 21:39:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式   浙江省杭州市
300精币
做了一个局域网的广播(数据报的形式,不填IP),设置的端口为90111,有些电脑可以收到广播的消息,有些电脑却收不到,然后IP是在同一段下的,请问这一版是什么原因,该怎么解决呢,求助大佬!

结帖率:100% (18/18)

签到天数: 5 天

沙发
发表于 2025-5-25 21:59:26 | 只看该作者   广东省深圳市
检查端口有没有被占用。

补充内容 (2025-5-25 21:59):
指定监听数据到达的端口号,可以是大于 0 小于 32767 的任何自定数值。
回复

使用道具 举报

签到天数: 3 天

板凳
发表于 2025-5-25 22:14:41 | 只看该作者   四川省成都市
首先 防火墙关闭, 然后查看网卡获取的局域网ip是否处于同一设备下ip段是否符合
回复

使用道具 举报

签到天数: 5 天

地板
发表于 2025-5-25 22:22:39 | 只看该作者   广东省广州市
udp端口可以超过65535?

点评

2^16-1   湖北省武汉市  发表于 2025-5-26 00:41
回复

使用道具 举报

结帖率:100% (1/1)
地下
发表于 2025-5-26 11:05:42 | 只看该作者   河南省许昌市
一、端口冲突或占用问题 检查端口占用 虽然90111端口非常用端口,但部分安全软件或后台服务可能占用该端口。可以通过以下命令检测:   netstat -ano | findstr ":90111" 若发现占用,需修改广播端口或终止占用进程(参考端口冲突解决方法  17   18 )。  广播端口范围限制 UDP广播的有效范围为同一子网,若某些电脑的子网掩码设置不一致(如255.255.255.0 vs 255.255.0.0),可能导致广播域不同。需统一子网掩码配置。  二、防火墙或网络设备拦截 防火墙拦截  Windows防火墙可能默认拦截UDP广播包。需手动添加防火墙规则允许90111端口的入站和出站通信(参考防火墙设置  32 )。 企业网络中可能存在硬件防火墙或交换机配置限制广播包转发,需检查交换机是否开启广播过滤功能。 安全软件干扰 部分杀毒软件(如360、火绒)可能拦截UDP广播流量,建议暂时关闭防护软件测试。  三、网络环境与代码实现问题 广播地址使用不当  确保代码中发送目标地址为局域网广播地址(如255.255.255.255或子网定向广播地址,如192.168.1.255)。 避免绑定到特定网卡IP,建议绑定到0.0.0.0(所有网卡)。 多网卡干扰 若电脑存在多个活跃网卡(如WiFi和有线网卡、虚拟机网卡),广播包可能仅通过其中一个网卡发送。需在代码中指定广播网卡或禁用无关网卡。
回复

使用道具 举报

签到天数: 2 天

6
发表于 2025-5-31 19:44:31 | 只看该作者   四川省泸州市

遇到局域网广播消息部分电脑无法接收的问题,通常与网络配置、系统设置或代码实现有关。以下是详细的排查步骤和解决方案:


一、核心排查步骤

1. 检查基础网络配置

  • 确认所有电脑在同一子网
    执行命令 ipconfig /all 查看各电脑的:

    • IPv4地址(如 192.168.1.x
    • 子网掩码(必须完全相同,如 255.255.255.0
    • 默认网关(应为同一网关)
  • 测试基础连通性
    在收不到广播的电脑上,用命令 ping 其他电脑IP 确认基础网络是否通畅。

2. 验证广播地址是否正确

  • 广播地址应为子网的最后一个地址,例如:
    • 如果IP是 192.168.1.100,子网掩码 255.255.255.0,则广播地址是 192.168.1.255
    • 易语言代码中需明确指定广播地址:
      发送数据报 (套接字, "广播内容", 长度, 90111, "192.168.1.255")

3. 关闭防火墙临时测试

  • 在无法接收的电脑上临时关闭防火墙:
     netsh advfirewall set allprofiles state off

    测试是否恢复正常,如果是,则需单独放行端口:

     netsh advfirewall firewall add rule name="UDP 90111" dir=in action=allow protocol=UDP localport=90111

4. 检查系统广播限制

  • Windows默认可能限制广播包的接收,修改注册表:
    1. 打开注册表:regedit
    2. 找到路径:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    3. 新建DWORD值:  
      • 名称:IGMPLevel  
      • 值:1(允许接收广播)

5. 路由器/交换机配置

  • 如果跨网段或使用复杂网络设备,需确认:
    • 路由器是否允许广播转发(检查UDP Helper功能)
    • 交换机是否隔离了广播流量(常见于企业网络)

二、易语言代码优化建议

1. 发送端代码示例

.版本 2
.支持库 sock

.子程序 发送广播
.局部变量 套接字, 整数型
.局部变量 广播地址, 文本型
.局部变量 发送内容, 文本型

套接字 = 创建套接字 (#AF_INET, #SOCK_DGRAM, #IPPROTO_UDP)
' 设置广播权限
置套接字选项 (套接字, #SOL_SOCKET, #SO_BROADCAST, 真)
' 计算广播地址(假设子网是192.168.1.0/24)
广播地址 = "192.168.1.255"
发送内容 = "这是测试广播消息"
发送数据报 (套接字, 发送内容, 取文本长度 (发送内容), 90111, 广播地址)

2. 接收端代码示例

.版本 2
.支持库 sock

.子程序 __启动窗口_创建完毕
.局部变量 套接字, 整数型

套接字 = 创建套接字 (#AF_INET, #SOCK_DGRAM, #IPPROTO_UDP)
绑定 (套接字, 90111, "0.0.0.0")  ' 监听所有网卡
时钟1.时钟周期 = 1000  ' 每秒检查一次

.子程序 时钟1_周期事件
.局部变量 数据, 文本型
.局部变量 来源IP, 文本型
.局部变量 来源端口, 整数型

数据 = 接收数据报 (套接字, 来源IP, 来源端口)
如果真 (数据 ≠ "")
    编辑框1.加入文本 (数据 + #换行符)

三、高级调试技巧

  1. 抓包分析
    在接收异常的电脑上使用Wireshark抓包,过滤UDP端口90111:

    udp.port == 90111
    • 如果能看到广播包但程序未接收 → 系统或代码问题
    • 如果完全无广播包 → 网络设备阻拦
  2. 检查网卡混杂模式
    部分无线网卡默认过滤广播包,尝试:

    netsh interface set interface "WiFi" admin=disable
    netsh interface set interface "WiFi" admin=enable
  3. 更换测试端口
    尝试改用更常见的广播端口(如20000-30000范围),避免与系统服务冲突。


四、企业网络特殊处理

如果是在公司/学校网络:

  1. 联系IT部门确认是否有广播隔离(如Port Security、PVLAN)
  2. 改用组播(Multicast)替代广播:
    组播地址 = "224.0.0.100"  ' 224.0.0.0~239.255.255.255
    加入组播组 (套接字, 组播地址)

最终解决方案建议

  1. 优先检查防火墙广播地址(90%问题由此导致)
  2. 在代码中添加错误日志,记录发送/接收状态
  3. 对于顽固问题,改用TCP点对点通信+自建服务发现机制

如果仍有问题,可以提供以下信息进一步诊断:

  • 完整的网络拓扑图
  • 发送/接收端的代码细节
  • 异常电脑的ipconfig /all输出
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表