Remote log: basic socket server and client

This commit is contained in:
Oskar Thoren 2019-08-03 13:58:47 +08:00
commit 2a1516743c
No known key found for this signature in database
GPG Key ID: B2ECCFD3BC2EF77E
2 changed files with 55 additions and 0 deletions

20
remote_log/client.nim Normal file
View File

@ -0,0 +1,20 @@
import net, os
let client = newSocket()
proc handler() {.noconv.} =
stdout.writeLine("Shutting down connection.")
client.close()
quit 0
setControlCHook(handler)
client.connect("127.0.0.1", Port(1234))
stdout.writeLine("Client connected to server on 127.0.0.1:1234")
while true:
stdout.write("> ")
let message: string = stdin.readLine()
client.send(message & "\r\L")
client.close()

35
remote_log/server.nim Normal file
View File

@ -0,0 +1,35 @@
import net, os
var server: Socket = newSocket()
proc handler() {.noconv.} =
stdout.write("Shutting down server.")
# Unclear if this matters with ReuseAddr
server.close()
quit 0
setControlCHook(handler)
server.setSockOpt(OptReuseAddr, true)
server.bindAddr(Port(1234))
server.listen()
stdout.writeLine("Server started, listening to new connections on port 1234")
var client: Socket
var address = ""
server.accept(client)
stdout.writeLine("Server: client connected")
while true:
let message: string = client.recvLine()
if message == "":
break
stdout.writeLine("Server: received from client: ", message)
server.close()