如何使用iOS 5 SDK ping服务器端口

时间:2012-07-07 15:29:58

标签: objective-c ios5 xcode4.2 ping

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

如果你能给我一步一步指导如何做到这一点,那将非常感激。

我使用Reachability tonymillion,因为苹果不适用于iOS 5。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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