meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
reference:dataserver [2024/03/11 21:34] bibiboxsreference:dataserver [2025/07/17 19:27] (当前版本) – 移除 bibiboxs
行 1: 行 1:
-<markdown> 
-# DataServer(数据服务器) 
-> `DataServer`是《沙盘引擎》服务器附带的**额外数据服务器(UDP)**,在每次Socket方式的服务器建立时自动开启(Steam服务器方式则不会启动),用于除游戏逻辑通讯外的其他网络交互。 
  
-## 服务器机制 
-数据服务器在每次【游戏服务器】启动时自动开启,并尝试以`Socket Port + 1`的方式选择端口号。 
- 
-因此,例如正常游戏服务器的端口是8192,那么如果8192+1的端口**没有被占用**,游戏服务器将启动成功,并且端口被设置为8193。 
- 
-如果端口被占用或其他原因导致启动失败,`DataServer`相关功能将无法正常使用,**但并不会影响游戏服务器的正常运行**。 
- 
-**==特别注意:因为端口号+1的机制,服务器主机如果希望使用`DataServer`的相关功能,请确保防火墙、安全组、端口映射等同时开放了(UDP)端口及端口+1。==** 
- 
-**==特别注意2:任何与`DataServer`之间的功能交互,必须使用`Port+1`的端口,而不是原游戏服务器的端口。==** 
- 
-## 服务器查询(Query) 
-当数据服务器正常开启之后,将允许接收来自第三方的UDP数据报,并自动验证是否为`Gamespy`协议信息或提交至`World.OnDataServerReceive()`事件中。 
- 
-如果开发者希望实现**外部查询服务器信息**的功能,可以使用`Gamespy`的简单查询机制,也就是向`DataServer`发送UDP数据报`\querystats\`,即可接收到当前服务器的最新信息(Json格式)。 
- 
-**注意:由于`DataServer`的端口+1机制,因此在发送数据报时需要向`'IP:Port+1' (127.0.0.1:8193)`的地址发送。** 
- 
-## 接受外部UDP数据报 
-当数据服务器正常开启之后,除引擎内置的`Gamespy`相关指令外,其他数据内容将提交至`World.OnDataServerReceive()`事件中,同时开发者也可使用`World.SendSocketData()`方法进行UDP交互。 
- 
-**==注意:能正确使用`DataServer`的前提是“数据服务器已正常启动”,并且外部用户能正常访问到服务器地址及端口。==** 
- 
-</markdown>