***( Naive factorial server. We erronously assume that port 8811 is necessarily available and that numbers make it through the connection in one piece. ) load socket mod FACT-SERVER is inc SOCKET . pr CONVERSION . op _! : Nat -> NzNat . eq 0 ! = 1 . eq (s N) ! = (s N) * (N !) . op myClass : -> Cid . ops myObj : -> Oid . var O O1 O2 O3 : Oid . var A : AttributeSet . var N : Nat . var S : String . rl < O : myClass | A > createdSocket(O, O2, O3) => < O : myClass | A > acceptClient(O3, O) . rl < O : myClass | A > acceptedClient(O, O2, S, O3) => < O : myClass | A > receive(O3, O) acceptClient(O2, O) . rl < O : myClass | A > received(O, O2, S) => < O : myClass | A > send(O2, O, string(rat(S, 10)!, 10)) . rl < O : myClass | A > sent(O, O2) => < O : myClass | A > closeSocket(O2, O) . rl < O : myClass | A > closedSocket(O, O2, S) => < O : myClass | A > . endm erew <> < myObj : myClass | none > createServerTcpSocket(socketManager, myObj, 8811, 5) .