基本上,我想检查游戏服务器是否在线/离线,但服务器是通过端口托管的,我将如何 ping 它来检查这一点。出于测试目的,我要 ping 的服务器是fr7.mooshroom.net:25667
,但最终我将从在线 plist 导入服务器 IP 和端口,以便将 IP 地址和端口分开
如果你能给我一个关于如何做到这一点的分步指南,那将不胜感激。
我正在使用Reachability
by,tonymillion
因为 Apple 不适用于 iOS 5。
基本上,我想检查游戏服务器是否在线/离线,但服务器是通过端口托管的,我将如何 ping 它来检查这一点。出于测试目的,我要 ping 的服务器是fr7.mooshroom.net:25667
,但最终我将从在线 plist 导入服务器 IP 和端口,以便将 IP 地址和端口分开
如果你能给我一个关于如何做到这一点的分步指南,那将不胜感激。
我正在使用Reachability
by,tonymillion
因为 Apple 不适用于 iOS 5。
首先,这取决于您是在谈论 TCP 还是 UDP。
如果是 TCP,那么答案可能很简单:尝试在该端口打开与服务器的 TCP 连接。如果连接打开,则断开连接并报告成功。否则,失败。这是简单化的观点。如果服务器前面有负载平衡器或防火墙,则 TCP 连接可能会打开但后端服务器已关闭。
UDP会更难。除非它向您发送某种响应,否则无法知道您何时发送 UDP 数据服务器获得了数据。如果 UDP 服务器已关闭并且您向端口发送了一条消息,您的计算机可能会收到一条 ICMP 错误消息。那肯定会让您知道服务器已关闭。但是防火墙可能会阻止此消息返回您的设备,因此这可能不可靠。
否则,您需要向服务器发送格式正确的消息以获得某种响应。这取决于协议,但最可靠。
传统的“ping”消息是 ICMP 回显查询和响应消息。因此,没有与 ICMP 关联的“端口”。