naptics / PlainPing

a very plain ping interface in swift
MIT License
59 stars 21 forks source link
ios swift

PlainPing

Project in Community Mode Only

The project is not maintained anymore. But if you've implemented new features, fixed bugs or resolved issues, we're happy to merge your PR.

We don't use PlainPing in our projects and therefore cannot invest much time into it right now. Our plan is to have PlainPing running as long as it is used by the community. If we see rising interest, we will come back to maintain it.

CI Status Version License Platform

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.

Usage

To run the example project, clone the repo, and run pod install in the Example directory first.

PlainPing interface

There is one class function in PlainPing, call PlainPing.ping(hostname, completionBlock). Arguments:

Example:

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)")
    }
})

Example 2:

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()
    })
}

Requirements

Minimum requirements unknown. Tested with the following:

Installation

PlainPing is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "PlainPing"

Author

Jonas Schoch, jonas.schoch@naptics.ch

License

PlainPing is available under the MIT license. See the LICENSE file for more info.