A very plain ping interface to ping hostname or address, with swift 4.0. The module uses SimplePing.
To use the swift 2.2 version, select the PlainPing 0.2.2 tagged source or pod.
To run the example project, clone the repo, and run pod install
in the Example directory first.
There is one class function in PlainPing, call PlainPing.ping(hostname, completionBlock)
.
Arguments:
hostName
: use a name or an IPcompletionBlock
: will return the elapsed time in ms and an error, if there is onewithTimeout
: (optional), define how long we wait for an answer in seconds, default 3s
PlainPing.ping("www.google.com", withTimeout: 1.0, completionBlock: { (timeElapsed:Double?, error:Error?) in
if let latency = timeElapsed {
self.pingResultLabel.text = "latency (ms): \(latency)"
}
if let error = error {
print("error: \(error.localizedDescription)")
}
})
Ping several hosts one-by-one.
var pings:[String] = []
@IBAction func pingButtonPressed(_ sender: UIButton) {
pings = ["www.google.com", "www.naptics.ch"]
pingNext()
}
func pingNext() {
guard pings.count > 0 else {
return
}
let ping = pings.removeFirst()
PlainPing.ping(ping, withTimeout: 1.0, completionBlock: { (timeElapsed:Double?, error:Error?) in
if let latency = timeElapsed {
print("\(ping) latency (ms): \(latency)")
}
if let error = error {
print("error: \(error.localizedDescription)")
}
self.pingNext()
})
}
Minimum requirements unknown. Tested with the following:
- xcode 9.0
- CocoaPods 1.0
PlainPing is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "PlainPing"
Jonas Schoch, [email protected]
PlainPing is available under the MIT license. See the LICENSE file for more info.