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

PipeServer