import asyncnet, asyncdispatch, strutils, threadpool proc fib(n: int): int = if n < 2: result = n else: result = fib(n-1) + fib(n-2) proc processClient(client: AsyncSocket) {.async.} = while true: let line = await client.recvLine() #let res = await #await client.send(intToStr(res) & "\n") await client.send(intToStr( fib(line.parseInt()) ) & "\n") proc serve() {.async.} = var server = newAsyncSocket() server.setSockOpt(OptReuseAddr, true) server.bindAddr(Port(25000)) server.listen() while true: let client = await server.accept() discard processClient(client) discard serve() runForever()