
EOSP2P - 通过Epic在线服务实现P2P(概念验证)
该模组通过利用Epic在线服务提供的P2P接口,增加了一种多人连接方式。
介绍
本模组旨在通过 Epic Online Service 为客户机端和专用服务器端添加 P2P 连接功能,以便在主机无法直接访问公网 IP(例如处于网络地址转换后)时,提供一种多人联机连接方式。
要求
该模组仅能在以下平台上运行:
- Windows (x86_64)
- Windows (arm64)(尚未测试)
- Linux (x86_64),需 GNU C 库 2.17+ 版本(尚未测试)
- Linux (arm64),需 GNU C 库 2.17+ 版本
- MacOS (x86_64),系统版本至少为 OS X 10.15 (Catalina)
- MacOS (arm64)(尚未测试)
- 使用 Musl C 的系统可以尝试 gcompat
- Android 因技术问题不受支持
详情
客户机端
加入游戏
如果模组成功加载并运行,输入格式正确的连接地址,即可像普通服务器地址一样在“添加服务器”和“直接连接”中正常使用。

开设局域网
如果模组成功加载并运行,在进行“对局域网开放”操作后,P2P 连接地址也会显示在聊天框中。你可以像原版局域网端口一样点击复制。

服务器端
P2P 连接地址会直接在“Start serving on..”后打印。注意,连接地址不包含括号。

命令
以下命令在专用服务器和客户机端上均可使用。
/eosp2p status:显示模组是否运行及其原因。/eosp2p eosaddress:显示当前世界的连接地址。如果尚未发布,则会报错。
已知问题(我未能解决的)
- 频繁的连接和断开可能会引发问题。
- 可能无法显示正确的关闭原因(因为在关闭原因到达前连接已关闭)。
- 服务器 PING 功能会显示服务器不可访问,而不会显示延迟。
致谢
本项目使用了以下开源软件库。我们衷心感谢作者和贡献者的卓越工作。
- kcp
- 作者/版权:Copyright (c) 2017 Lin Wei (skywind3000 at gmail.com)
- 许可证:MIT 许可证(参见附录第 1 节)
- 链接:https://github.com/skywind3000/kcp
- skarupke/flat_hash_map
- 作者/版权:Copyright Malte Skarupke 2017
- 许可证:Boost 软件许可证 1.0 版(参见附录第 2 节)
- 链接:https://github.com/skarupke/flat_hash_map
- Magic Enum C++
- 作者/版权:Copyright (c) 2019 - 2026 Daniil Goncharov
- 许可证:MIT 许可证(参见附录第 1 节)
- 链接:https://github.com/Neargye/magic_enum
- CPP/CRC
- 作者/版权:Copyright (c) 2022 Darren V Levine
- 许可证:MIT 许可证(参见附录第 1 节)
- 链接:https://github.com/DarrenLevine/cppcrc
- 作者/版权:Copyright (c) 2012 - present, Victor Zverovich and contributors
- 许可证:MIT 许可证(参见附录第 1 节)
- 链接:https://github.com/fmtlib/fmt
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。