Rcon Api不工作

我正在开发一个游戏控制面板,并使用Rcon.jar从游戏服务器获取数据。

使用它的代码如下所示

 public static String rconExecute(String rcon, String command, int port, String ip) throws SocketTimeoutException{ String response = ""; try { response = Rcon.send(27778, ip, port, rcon, command); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return response; } 

当使用站点运行时会引发错误,但是使用本地应用程序完成时会引发错误

 public class RconTest { public static void main(String args[]) throws SocketTimeoutException, BadRcon, ResponseEmpty{ String response = Rcon.send(27778, "59.177.45.13", 27015, "123", "status"); System.out.println(response); } } 

它工作正常,为什么?

错误是: java.net.SocketTimeoutException: Receive timed out

您需要缩小可能导致错误的因素。 超时可能意味着它根本无法到达服务器,或者它可以,但服务器不接受连接。

检查你所假设的一切 – 比如端口号,服务器IP地址等等。当你发现自己有一个“但是它必须工作! 错误,这通常意味着你假设的东西是不正确的。

在这种情况下,请注意在两个代码示例中对Rcon.send的调用不完全相同 – 一个参数已传入,另一个则有硬连线参数。 你假设传递的参数(如IP地址)是正确的。 如果将示例1中的Rcon.send行replace为示例2中的硬连线,它是否工作?

我对rcon不太熟悉,是Valve的远程管理协议吗?

如果是这样,你的机器上的Web服务器? 这是什么IP地址,你的? 它是否正确路由与正确的端口(如果你在一个rounter后面)? 您的防火墙是否从您的Web服务器接受此端口上的传入连接?

如果您在PC上安装Web服务器,代码是否工作? 这将意味着您的服务器很可能只接受来自本地主机的连接,或者防火墙/路由器configuration阻止了外部连接。