| 你的需求 | 这个工具能做什么 |
|---|---|
| 公司内部培训, 讲师需要全员看自己屏幕 | 讲师机一键广播, 学员机自动全屏显示, 无需投影仪 |
| 会议室演示, 不想接 HDMI 线 | 所有参会者在自己座位上就能看清, 每人一个屏幕 |
| 软件操作教学/代码演示, 学员要边看边练 | 画面低延迟广播(约0.2~0.5秒), 学员实时跟做 |
| 不想依赖互联网, 也不想安装任何软件 | 纯局域网运行, 无需互联网, 绿色版双击即用 |
| 想自学 Python 网络编程 (UDP广播、屏幕截图) | 提供完整 Python 源码 + 详细注释, 可二次开发定制 |
| 企业需要屏幕广播的定制功能 (水印、录制、只抓某个窗口) | 源码完全开放, 支持修改帧率、分辨率、添加水印等 |
温馨提示:本工具专为企业内部培训、教学演示等合法场景设计,请勿用于非法监控或侵犯他人隐私。

沈阳龙越投屏工具 是一款专为企业局域网环境设计的屏幕广播软件。它允许讲师(控制端)将电脑屏幕实时发送到同一网络下的所有学员电脑(被控端),无需互联网、无需投影仪,学员在自己的座位上即可清晰观看操作演示。
本工具提供 Windows 绿色版 exe 及 完整 Python 源码,支持二次开发定制。基于 UDP 广播协议,实现一键投屏、自动发现、零配置启动。
🚀 快速上手:从零到投屏成功
第一步:讲师机操作
- 双击
LongYue_Teacher.exe - 程序自动开始抓取屏幕,无需任何点击
- 看到托盘图标或控制台输出“广播中...”即表示正在发送画面
第二步:学员机操作
- 学员机双击
LongYue_Student.exe - 屏幕显示 5 秒倒计时,然后自动全屏显示讲师画面
- 画面实时刷新,延迟约 0.2~0.5 秒
第三步:停止投屏
- 讲师机直接关闭窗口即可
- 学员机在无画面 5 秒后自动退出,无需手动关闭
⚠️ 特别提醒:如果学员机一直没画面,几乎都是防火墙拦截了 UDP 广播。请以管理员身份运行
防火墙一键放行.bat,或手动放行 UDP 端口 12345(见常见问题 Q1)。
💡 核心功能
| 功能模块 | 详细说明 |
|---|---|
| 屏幕实时抓取 | 控制端每秒抓取 5 帧屏幕(可调), 压缩为 JPEG 格式 |
| UDP 广播发送 | 使用广播地址 255.255.255.255:12345,同网段所有设备自动接收 |
| 动态压缩传输 | 图片质量 70% + zlib 压缩, 单帧小于 1.4KB,带宽占用低 |
| 学员端自动接收 | 学员机启动后监听广播, 收到画面即全屏显示 |
| 倒计时提示 | 学员端接收前显示 5 秒倒计时, 让用户有心理准备 |
| 断线自动退出 | 控制端停止发送后, 学员端 5 秒无数据自动关闭程序 |
| 绿色免安装 | 所有 exe 均为单文件,双击运行,不写注册表 |
| 源码可定制 | 提供完整 Python 源码, 支持修改端口、帧率、截图区域、添加水印等 |
⚠️ 重要使用说明
本工具为企业内部培训、教学演示等合法场景设计,使用时请注意以下几点:
网络环境要求
- 所有电脑必须连接 同一交换机或同一 Wi-Fi SSID,且 IP 在同一网段(如 192.168.1.x)。
- 跨网段(不同 VLAN)需要使用组播模式,请参考常见问题 Q5。
防火墙配置
- Windows Defender 防火墙默认会拦截 UDP 广播,导致学员机收不到画面。
- 请运行资源包中的
防火墙一键放行.bat(管理员身份),或手动放行 UDP 端口 12345。
性能建议
- 无线网络环境下可能存在干扰导致卡顿,建议使用有线网络。
- 如果画面卡顿,可降低控制端帧率(修改
time.sleep(0.2)为0.33)或降低截图分辨率。
隐私声明
- 本工具 不会保存、上传或存储任何屏幕画面,所有数据仅在内存中处理并实时广播。
- 关闭程序后不留任何缓存文件。
合法使用
- 请在获得被投屏电脑用户同意的情况下使用,不得用于未经授权的监控或窥探。
- 企业 IT 部门可将其部署于内部培训室,但应告知员工。
⚙️ 源码环境
开发环境要求
| 项目 | 版本/说明 |
|---|---|
| 操作系统 | Windows 7 / 8 / 10 / 11 |
| Python | 3.7 ~ 3.11 |
| 必需库 | pillow(图像处理)、pygame(全屏显示) |
| 打包工具 | pyinstaller(可选,用于生成 exe) |
一键安装依赖:
pip install pillow pygame
源代码运行步骤
- 安装 Python 3.7+ 及上述依赖库
- 解压源码包,打开命令行进入源码目录
- 讲师机运行:
python teacher.py - 学员机运行:
python student.py
编译为绿色版 exe(使用 PyInstaller)
pip install pyinstaller
pyinstaller --onefile --noconsole teacher.py # 生成讲师机 exe
pyinstaller --onefile --noconsole student.py # 生成学员机 exe
生成的 exe 位于 dist 文件夹,可直接分发使用。
核心技术点解析
- 屏幕截图优化:使用
PIL.ImageGrab.grab()全屏抓取,thumbnail缩小分辨率,save(quality=70)压缩。 - UDP 广播:设置
socket.SO_BROADCAST选项,向255.255.255.255发送数据包。 - 数据压缩:
zlib.compress压缩 JPEG 字节流,减少网络负载。 - 全屏渲染:
pygame全屏模式 +pygame.image.fromstring快速绘制。 - 超时退出:接收端记录最后接收时间,超时 5 秒自动
pygame.quit()退出。
🛠️ 常见问题
Q1:学员机收不到任何画面,倒计时结束后黑屏?
- 原因:防火墙拦截了 UDP 广播。
- 解决:
- 以管理员身份运行资源包中的
防火墙一键放行.bat; - 或手动设置:控制面板 → Windows Defender 防火墙 → 高级设置 → 入站规则 → 新建规则 → 端口 → UDP → 特定端口
12345→ 允许连接 → 完成。 - 重启学员端程序。
- 以管理员身份运行资源包中的
Q2:画面卡顿或延迟明显?
- 原因:网络带宽不足或帧率过高。
- 解决:
- 降低帧率:修改控制端源码
time.sleep(0.2)为time.sleep(0.33)(约 3 帧/秒),重新打包; - 降低分辨率:修改
img.thumbnail((1024, 768))为(800, 600); - 尽量使用有线网络,避免无线干扰。
- 降低帧率:修改控制端源码
Q3:学员机弹出“端口已被占用”错误?
- 原因:端口 12345 被其他程序(如之前的投屏进程)占用。
- 解决:
- 关闭其他占用进程;
- 或修改源码中的
PORT = 12345为其他值(如 12346),控制端和所有学员端需同步修改。
📄 许可与注意事项
- 本工具及源码采用 MIT 许可证。
- ✅ 允许:商业使用、修改源码、再分发、私有使用
- ✅ 无需:公开修改后的源码、保留版权声明(但建议保留)
- ⚠️ 要求:在分发时附上原始版权声明(位于源码头部)
- ❌ 免责:作者不对使用本软件造成的任何损失承担责任
- 友情提示:
- 本工具仅供企业内部培训、教学演示等合法场景使用。
- 请勿用于非法监控、窥探他人隐私或其他违反法律法规的行为。
- 使用前请确保已获得被投屏电脑用户的同意。
📄版权声明:
本站所有文章,如无特殊说明或标注,均为渡漳网原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
📧联系我们:admin@dzcrv.com
