mirror of
https://github.com/vacp2p/research.git
synced 2025-02-23 19:58:30 +00:00
Remote log: basic socket server and client
This commit is contained in:
commit
2a1516743c
20
remote_log/client.nim
Normal file
20
remote_log/client.nim
Normal 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
35
remote_log/server.nim
Normal 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()
|
Loading…
x
Reference in New Issue
Block a user