mirror of
https://github.com/vacp2p/research.git
synced 2025-02-24 12:18:06 +00:00
36 lines
993 B
Nim
36 lines
993 B
Nim
|
import net, os, threadpool
|
||
|
|
||
|
let client = newSocket()
|
||
|
|
||
|
proc handler() {.noconv.} =
|
||
|
stdout.writeLine("Shutting down connection.")
|
||
|
client.close()
|
||
|
quit 0
|
||
|
|
||
|
setControlCHook(handler)
|
||
|
|
||
|
client.connect("127.0.0.1", Port(6001))
|
||
|
stdout.writeLine("Client connected to name service on 127.0.0.1:6001")
|
||
|
|
||
|
# TODO: Rewrite this to be async so it can send/recv at same time
|
||
|
while true:
|
||
|
stdout.write("> ")
|
||
|
#let message: string = stdin.readLine()
|
||
|
let message = spawn stdin.readLine()
|
||
|
echo("Sending \"", ^message, "\"")
|
||
|
client.send(^message & "\r\L")
|
||
|
|
||
|
client.close()
|
||
|
|
||
|
# 1) Node wants to post data to ns, and ns stores it
|
||
|
# 2) Node can recevive
|
||
|
|
||
|
# Since we want to use CAS update result to do NS update,
|
||
|
# Having sending and receiving behavior in same proc seems desirable
|
||
|
# Also easier to reason about, so let's do that
|
||
|
|
||
|
# To do encoding we probably want something like protobuf, or maybe use hacky
|
||
|
# stringify if that's a thing, or JSON
|
||
|
|
||
|
# Consider separating out interactive parts into client.nim
|