module test_server import StdEnv import StdLib import TCPIP Start w # (ok, mbListener, w) = openTCP_Listener 12345 w | not ok = abort "Couldn't open port 12345\n" # listener = fromJust mbListener # (listener, w) = loop listener w //((_,duplexChannel),listener,w) = receive listener w # w = closeRChannel listener w = w where loop :: !TCP_Listener !*World -> (TCP_Listener, *World) loop li w # ((ip,dupChan),li,w) = receive li w # (msg, rChan, w) = receive dupChan.rChannel w dupChan = {dupChan & rChannel=rChan} # (sChan, w) = send msg dupChan.sChannel w dupChan = {dupChan & sChannel=sChan} # w = closeRChannel dupChan.rChannel w # w = closeChannel dupChan.sChannel w # (io, w) = stdio w # io = fwrites (toString ip +++ ": " +++ toString msg) io # (_, w) = fclose io w | length [1..999999999] == 999999999 = loop li w