0

基本上,我想检查游戏服务器是否在线/离线,但服务器是通过端口托管的,我将如何 ping 它来检查这一点。出于测试目的,我要 ping 的服务器是fr7.mooshroom.net:25667,但最终我将从在线 plist 导入服务器 IP 和端口,以便将 IP 地址和端口分开

如果你能给我一个关于如何做到这一点的分步指南,那将不胜感激。

我正在使用Reachabilityby,tonymillion因为 Apple 不适用于 iOS 5。

4

1 回答 1

1

首先,这取决于您是在谈论 TCP 还是 UDP。

如果是 TCP,那么答案可能很简单:尝试在该端口打开与服务器的 TCP 连接。如果连接打开,则断开连接并报告成功。否则,失败。这是简单化的观点。如果服务器前面有负载平衡器或防火墙,则 TCP 连接可能会打开但后端服务器已关闭。

UDP会更难。除非它向您发送某种响应,否则无法知道您何时发送 UDP 数据服务器获得了数据。如果 UDP 服务器已关闭并且您向端口发送了一条消息,您的计算机可能会收到一条 ICMP 错误消息。那肯定会让您知道服务器已关闭。但是防火墙可能会阻止此消息返回您的设备,因此这可能不可靠。

否则,您需要向服务器发送格式正确的消息以获得某种响应。这取决于协议,但最可靠。

传统的“ping”消息是 ICMP 回显查询和响应消息。因此,没有与 ICMP 关联的“端口”。

于 2012-07-08T05:42:02.360 回答