SwiftSocket library provides as easy to use interface for socket based connections on server or client side. Supports both TCP and UDP sockets.
Add this to your Podfile:
pod'SwiftSocket'And run then pod install
github"swiftsocket/SwiftSocket"// Create a socket connect to www.apple.com and port at 80
letclient=TCPClient(address:"www.apple.com", port:80)You can also set timeout to -1 or leave parameters empty (client.connect()) to turn off connection timeout.
switch client.connect(timeout:10){case.success:
// Connection successful 🎉
case .failure(let error):
// 💩
}letdata:Data= // ... Bytes you want to send
let result = client.send(data: data)vardata= client.read(1024*10) //return optional [Int8]client.close()letclient=TCPClient(address:"www.apple.com", port:80)switch client.connect(timeout:1){case.success:switch client.send(string:"GET / HTTP/1.0\n\n"){case.success:guardlet data = client.read(1024*10)else{return}iflet response =String(bytes: data, encoding:.utf8){print(response)}case.failure(let error):print(error)}case.failure(let error):print(error)}func echoService(client:TCPClient){print("Newclient from:\(client.address)[\(client.port)]")vard= client.read(1024*10)
client.send(data: d!)
client.close()}func testServer(){letserver=TCPServer(address:"127.0.0.1", port:8080)switch server.listen(){case.success:whiletrue{ifvar client = server.accept(){echoService(client: client)}else{print("accept error")}}case.failure(let error):print(error)}}