Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import net, nativesockets, os
- proc server =
- echo "SERVER MODE"
- echo "listening"
- let server = newSocket()
- bindAddr server, Port(1234), "127.0.0.1"
- listen server
- var
- client = newSocket()
- clients = newSeq[Socket]()
- data = newString(1024)
- setBlocking getFD(server), false
- setBlocking getFD(client), false
- while true:
- sleep 1500
- try:
- accept server, client
- add clients, client
- client = newSocket()
- setBlocking getFD(client), false
- echo "New Client"
- except: discard
- for c in clients:
- try:
- while true:
- let len = recv(c, cstring(data), len(data))
- if len > 0:
- echo "Client: ", data[0..<len]
- discard trySend(c, "Got it")
- else: break
- except: discard
- proc client =
- echo "CLIENT MODE"
- let socket = newSocket()
- while true:
- try:
- connect socket, "127.0.0.1", Port(1234)
- break
- except: sleep 1000
- setBlocking getFD(socket), false
- echo "Client connected"
- var
- data = newString(1024)
- count = 0
- while true:
- sleep 2000
- let msg = "'Count: " & $count & '\''
- echo "Send: ", msg
- if not trySend(socket, msg):
- quit "Cannot send any data"
- inc count
- try:
- while true:
- let len = recv(socket, cstring(data), len(data))
- if len > 0:
- echo "Server: ", data[0..<len]
- else: break
- except: discard
- proc main =
- for i in commandLineParams():
- case i:
- of "client": client()
- of "server": server()
- else: discard
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement