Created
February 25, 2016 13:10
-
-
Save xiongxin/de942b5f2698355adcbe to your computer and use it in GitHub Desktop.
Revisions
-
sepisoad revised this gist
May 2, 2015 . 2 changed files with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes.File renamed without changes. -
sepisoad revised this gist
May 2, 2015 . 2 changed files with 21 additions and 22 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,8 +1,9 @@ import net import rawsockets import strutils const SERVER_PORT = Port(1987) const SERVER_ADDR = "localhost" var canQuit = false @@ -11,17 +12,18 @@ proc main() = var clientSocket = newSocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, false) var clientSocketFD = clientSocket.getFD() clientSocketFD.setBlocking(false) clientSocket.connect(SERVER_ADDR, SERVER_PORT, 2000) while not canQuit: var message: string stdout.write("message: ") message = stdin.readLine() message.add("\c\l") clientSocket.send(message) if message == "exit\c\l": clientSocket.close() canQuit = true except OSError: echo("OSError") This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,38 +1,35 @@ import net const SERVER_PORT = Port(1987) var canQuit = false proc handleClient(clientSocket: Socket) = var canStopReceiving = false while not canStopReceiving: var bufferString: string = "" clientSocket.readLine(bufferString); echo("Client: " & bufferString) if bufferString == "exit": clientSocket.close() canQuit = true canStopReceiving = true proc main() = try: var serverSocket = newSocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, true) serverSocket.bindAddr(SERVER_PORT) echo ("server", " is bound to port ", $SERVER_PORT) serverSocket.listen() echo ("server", " is listening for an incomming connection...") var clientSocket = newSocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, true) var clientSocketFD = clientSocket.getFD() clientSocketFD.setBlocking(false) serverSocket.accept(clientSocket) echo ("server", " has accepted a new connection from: $$$$") handleClient(clientSocket) serverSocket.close() except OSError: echo("OSError") -
sepisoad created this gist
May 1, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,29 @@ import net import rawsockets const SERVER_PORT = Port(1987) let serverAddr = "localhost" var canQuit = false proc main() = try: var clientSocket = newSocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, false) var clientSocketFD = clientSocket.getFD() clientSocketFD.setBlocking(false) clientSocket.connect(serverAddr, SERVER_PORT, 2000) while not canQuit: var message: string stdout.write("message: ") message = stdin.readLine() clientSocket.send(message) if message == "exit": clientSocket.close() canQuit = true clientSocket.skip(0) except OSError: echo("OSError") main() This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,43 @@ import net import rawsockets const SERVER_PORT = Port(1987) const BUFF_SIZE = 2048 var canQuit = false proc handleClient(clientSocket: Socket) = while true: var bufferString: string = "\n" var receivedBufferLen = clientSocket.recv(bufferString, BUFF_SIZE) echo(receivedBufferLen) echo(bufferString) if bufferString == "exit" or receivedBufferLen == 0: clientSocket.close() canQuit = true break proc main() = try: var serverSocket = newSocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, true) # var serverSocketFD = serverSocket.getFD() # serverSocketFD.setBlocking(false) serverSocket.bindAddr(SERVER_PORT) serverSocket.listen() while not canQuit: var clientSocket = newSocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, true) var clientSocketFD = clientSocket.getFD() clientSocketFD.setBlocking(false) serverSocket.accept(clientSocket) handleClient(clientSocket) serverSocket.close() except OSError: echo("OSError") return echo("finished...") main()