https://github.com/fitnesskit/asyncnetwork
Asynchronous Network support for Swift. UDP, Multicast UDP
https://github.com/fitnesskit/asyncnetwork
multicast swift swift-3 swift-framework udp udp-client udp-packet-notification udp-server web
Last synced: 3 months ago
JSON representation
Asynchronous Network support for Swift. UDP, Multicast UDP
- Host: GitHub
- URL: https://github.com/fitnesskit/asyncnetwork
- Owner: FitnessKit
- License: mit
- Archived: true
- Created: 2017-03-08T14:34:30.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-06-24T18:01:11.000Z (almost 7 years ago)
- Last Synced: 2024-09-25T20:39:48.278Z (7 months ago)
- Topics: multicast, swift, swift-3, swift-framework, udp, udp-client, udp-packet-notification, udp-server, web
- Language: Swift
- Size: 28.3 KB
- Stars: 7
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AsyncNetwork
Asynchronous Network support for Swift. UDP, Multicast UDP## Installation
Swift Package Manager:
Swift3
```swift
dependencies: [
.Package(url: "https://github.com/FitnessKit/AsyncNetwork", majorVersion: 0)
]
```
Swift4
```swift
dependencies: [
.package(url: "https://github.com/FitnessKit/AsyncNetwork", from: "1.0.0"),
]
```### Example Usage
```
let sock = AsyncUDP()let observer = UDPReceiveObserver(closeHandler: { (sock: AsyncUDP, error: SocketError?) in
print("Socket did Close: \(error)")
}, receiveHandler: { (sock: AsyncUDP, data: Data, address: InternetAddress) in
print("\n Data: \(data) from: \(address.hostname) onPort:\(address.port)")
})
sock.addObserver(observer)
do {
let addr = InternetAddress.anyAddr(port: 51113, family: .inet)
//let addr = InternetAddress.anyAddr(port: 5353, family: .inet)
try sock.bind(address: addr)
} catch {
print("error \(error)")
}//Join Muliticast Group
let mGroup = MulticastGroup(group: "239.78.80.1")
//let mGroup = MulticastGroup.mDNS()do {
try sock.join(group: mGroup)//Start the Stream of Data
try sock.beginReceiving()} catch {
print("error \(error)")
}//Leave Group
do {
try sock.leave(group: mGroup)
} catch {
print("Error \(error)")
}```