项目作者: FitnessKit

项目描述 :
Asynchronous Network support for Swift. UDP, Multicast UDP
高级语言: Swift
项目地址: git://github.com/FitnessKit/AsyncNetwork.git
创建时间: 2017-03-08T14:34:30Z
项目社区:https://github.com/FitnessKit/AsyncNetwork

开源协议:MIT License

下载


AsyncNetwork

Asynchronous Network support for Swift. UDP, Multicast UDP

Installation

Swift Package Manager:

Swift3

  1. dependencies: [
  2. .Package(url: "https://github.com/FitnessKit/AsyncNetwork", majorVersion: 0)
  3. ]

Swift4

  1. dependencies: [
  2. .package(url: "https://github.com/FitnessKit/AsyncNetwork", from: "1.0.0"),
  3. ]

Example Usage

  1. let sock = AsyncUDP()
  2. let observer = UDPReceiveObserver(closeHandler: { (sock: AsyncUDP, error: SocketError?) in
  3. print("Socket did Close: \(error)")
  4. }, receiveHandler: { (sock: AsyncUDP, data: Data, address: InternetAddress) in
  5. print("\n Data: \(data) from: \(address.hostname) onPort:\(address.port)")
  6. })
  7. sock.addObserver(observer)
  8. do {
  9. let addr = InternetAddress.anyAddr(port: 51113, family: .inet)
  10. //let addr = InternetAddress.anyAddr(port: 5353, family: .inet)
  11. try sock.bind(address: addr)
  12. } catch {
  13. print("error \(error)")
  14. }
  15. //Join Muliticast Group
  16. let mGroup = MulticastGroup(group: "239.78.80.1")
  17. //let mGroup = MulticastGroup.mDNS()
  18. do {
  19. try sock.join(group: mGroup)
  20. //Start the Stream of Data
  21. try sock.beginReceiving()
  22. } catch {
  23. print("error \(error)")
  24. }
  25. //Leave Group
  26. do {
  27. try sock.leave(group: mGroup)
  28. } catch {
  29. print("Error \(error)")
  30. }