原始项目文档请见 README_ORIGIN.md
实现FizzySteamworks库的LAN直连模式,通过配置文件快速切换UDP直连和Steam P2P两种网络模式,用于开发和测试。
- Sephiria 赛菲莉娅
- Super Raft Boat Together
运行应用时,库会在应用运行目录自动生成 lan_config.json 配置文件。编辑此文件来切换模式:
默认配置(P2P模式):
{
"lan": false,
"auto_reload": false,
"connect_ip": "",
"connect_port": 0,
"listen_ip": "",
"listen_port": 0
}LAN模式配置示例:
{
"lan": true,
"auto_reload": true,
"connect_ip": "127.0.0.1",
"connect_port": 27015,
"listen_ip": "0.0.0.0",
"listen_port": 27015
}| 参数 | 说明 |
|---|---|
lan |
true = LAN直连模式,false = P2P模式 |
auto_reload |
true = 监听 lan_config.json 变化并自动重载,false = 仅启动时加载 |
connect_ip |
客户端连接的服务器IP地址 |
connect_port |
客户端连接目标端口 |
listen_ip |
服务器监听的IP地址(0.0.0.0 = 所有接口) |
listen_port |
服务器监听端口 |
编译与依赖引用请见 BUILD.md。
- 仅负责公共收发逻辑与缓冲区管理
- 启动时调用
Config.EnsureLoaded()触发配置加载 - 不新增
config实例字段,避免破坏原有字段布局
Connect()中通过Config.Instance读取配置(局部变量)lan=true:使用ConnectByIPAddress()进行 UDP 直连lan=false:使用ConnectP2P()进行 Steam P2P 连接
Host()中通过Config.Instance读取配置(局部变量)lan=true:使用CreateListenSocketIP()监听指定 IP/端口lan=false:使用CreateListenSocketP2P()创建 P2P 监听
- 保留
Config类型,并以单例Config.Instance提供访问 - 运行目录存在
lan_config.json时加载,不存在则生成默认文件 - 负责配置模型、加载与重载入口控制
- 字段保持为:
lanauto_reloadconnect_ipconnect_portlisten_iplisten_port
- 独立文件监听类,封装
FileSystemWatcher逻辑 - 仅在
auto_reload=true时启动监听,文件变化后触发Config重载
- 未新增
OnServerConnectedWithAddress字段 - 服务端连接事件使用 Mirror 原生
OnServerConnected