I'm using this to test asyncnet sockets
proc simulateAsyncClientServer*(function: (AsyncSocket, AsyncSocket) ->
void) =
let ssocket = newAsyncSocket(AF_INET, SOCK_STREAM, IPPROTO_TCP)
let rclient = newAsyncSocket(AF_INET, SOCK_STREAM, IPPROTO_TCP)
var sclient: AsyncSocket
defer:
ssocket.close()
rclient.close()
sclient.close()
let port = 55145.Port
let host = "127.0.0.1"
ssocket.setSockOpt(OptReuseAddr, true)
ssocket.bindAddr(port, host)
ssocket.listen()
waitfor rclient.connect(host, port)
sclient = waitfor ssocket.accept()
function(sclient, rclient)
Run