Server - noppoMan/Suv GitHub Wiki
TCPServer
TcpServer class is for making TCP Server based on [An Networking Introduction to libuv] (https://nikhilm.github.io/uvbook/networking.html)
TCP Echo Server Example
import Suv
let server = TCPServer()
server.bind(Address(host: "127.0.0.1", port: 3000))
try! server.listen(128) {result in
if case .Error(let error) = result {
print(error)
return server.close()
}
let client = TCP()
try! server.accept(client)
client.read { result in
if case let .Data(buf) = result {
let message = buf.toString()!
switch message {
case "ping\r\n":
client.write(Buffer("pong\n")) {}
case "quit\r\n":
client.close()
default:
client.write(buf) {}
}
} else {
client.close()
}
}
}
Loop.defaultLoop.run() // Alias for Loop(uv_default_loop()).run()