Не получает пакет ответа Ping в SamplePing - PullRequest
0 голосов
/ 15 ноября 2018

Я использую Apple SamplePing для проверки связи с IP-адресом локального IP-адреса моего маршрутизатора.Когда я дал существующий локальный IP-адрес, SamplePing отправлял пакет хосту и получал ответный пакет.Но когда я нажимаю на несуществующий IP в моем локальном маршрутизаторе, он отправляет пакет и не получает никакого ответа.Как я могу узнать, произошел сбой или нет, и как я могу узнать, существует ли этот IP вообще?

Вот мой пример кода:

let hostName = "192.168.1.31"// existing ip in my router
//"192.168.1.32"// non existing ip in my router

var pinger: SimplePing?
var sendTimer: Timer?

override func viewDidLoad() {
    super.viewDidLoad()
    self.title = self.hostName


    let pinger = SimplePing(hostName: self.hostName)
    self.pinger = pinger

    pinger.delegate = self
    pinger.start()    
}

func simplePing(_ pinger: SimplePing, didStartWithAddress address: Data) {
    self.pinger!.send(with: nil)
}

func simplePing(_ pinger: SimplePing, didFailWithError error: Error) {
   // NSLog("failed: %@", MainViewController.shortErrorFromError(error: error))
     print(error.localizedDescription)
    pinger.stop()
}

func simplePing(_ pinger: SimplePing, didSendPacket packet: Data, sequenceNumber: UInt16) {
    NSLog("#%u sent", sequenceNumber)
}

private func simplePing(pinger: SimplePing, didFailToSendPacket packet: NSData, sequenceNumber: UInt16, error: NSError) {
   print(error.localizedDescription)
}

func simplePing(_ pinger: SimplePing, didReceivePingResponsePacket packet: Data, sequenceNumber: UInt16) {
    NSLog("#%u received, size=%zu", sequenceNumber, packet.count)
    pinger.stop()
}

func simplePing(_ pinger: SimplePing, didReceiveUnexpectedPacket packet: Data) {
    NSLog("unexpected packet, size=%zu", packet.count)
}

Это ответ дляслучай успеха:

2018-11-15 18:33:38.159301+0530 SimplePingApp[16332:534091] #0 sent
2018-11-15 18:33:38.567979+0530 SimplePingApp[16332:534091] #0 received, size=64
2018-11-15 18:33:38.568277+0530 SimplePingApp[16332:534091] stop

Это ответ для случая отказа:

2018-11-15 18:33:38.159301+0530 SimplePingApp[16332:534091] #0 sent
...