epc waits on recv, not on accept
This commit is contained in:
parent
00fafd1dbe
commit
39378823ae
1 changed files with 5 additions and 4 deletions
|
|
@ -205,17 +205,18 @@ proc serve() =
|
||||||
var inp = "".TaintedString
|
var inp = "".TaintedString
|
||||||
server.listen()
|
server.listen()
|
||||||
echo(port)
|
echo(port)
|
||||||
|
var client = newSocket()
|
||||||
|
# Wait for connection
|
||||||
|
accept(server, client)
|
||||||
while true:
|
while true:
|
||||||
var client = newSocket()
|
|
||||||
accept(server, client)
|
|
||||||
var sizeHex = ""
|
var sizeHex = ""
|
||||||
if client.recv(sizeHex, 6, 1000) != 6:
|
if client.recv(sizeHex, 6) != 6:
|
||||||
raise newException(ValueError, "didn't get all the hexbytes")
|
raise newException(ValueError, "didn't get all the hexbytes")
|
||||||
var size = 0
|
var size = 0
|
||||||
if parseHex(sizeHex, size) == 0:
|
if parseHex(sizeHex, size) == 0:
|
||||||
raise newException(ValueError, "invalid size hex: " & $sizeHex)
|
raise newException(ValueError, "invalid size hex: " & $sizeHex)
|
||||||
var messageBuffer = ""
|
var messageBuffer = ""
|
||||||
if client.recv(messageBuffer, size, 3000) != size:
|
if client.recv(messageBuffer, size) != size:
|
||||||
raise newException(ValueError, "didn't get all the bytes")
|
raise newException(ValueError, "didn't get all the bytes")
|
||||||
let message = parseSexp($messageBuffer)
|
let message = parseSexp($messageBuffer)
|
||||||
let messageType = message[0].getSymbol
|
let messageType = message[0].getSymbol
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue