DIRECTORY IO, IOClasses, Process, Protocols, Rope; EchoProtocol: CEDAR PROGRAM IMPORTS IOClasses, Process, Protocols = {OPEN Protocols; echo: Protocol _ NEW [ProtocolRep _ [ name: "Echo", Connect: Connect, Disconnect: Disconnect ]]; Connect: PROC [ serverName: ROPE, fromClient, toClient: IO.STREAM, noteDisconnect: PROC [clientData: REF ANY] _ NIL, clientData: REF ANY _ NIL, login: BOOL _ FALSE] RETURNS [c: Conversation] = { c _ NEW [ConversationRep _ [protocol: echo, noteDisconnect: noteDisconnect, clientData: clientData, data: NIL]]; TRUSTED {Process.Detach[FORK IOClasses.Copy[from: fromClient, to: toClient]]}; }; Disconnect: PROC [c: Conversation] = { IF c.noteDisconnect # NIL THEN c.noteDisconnect[c.clientData]}; Protocols.RegProtocol[echo]; }. REchoProtocol.Mesa Last Edited by: Spreitzer, March 20, 1985 11:42:33 am PST Κ`– "cedar" style˜Icode™K™9K˜KšΟk œœ&˜2K˜šΠbx œœ˜Kšœ˜%K˜Kšœœ ˜K˜šœœ˜%K˜ Kšœ˜Kšœ˜K˜—K˜šΟnœ˜ šœ˜Kšœ œ˜Kšœœœ˜ Kš œœœœœ˜1Kšœ œœœ˜Kšœœœ˜—Kšœ˜Kšœ˜Kšœœcœ˜pKšœœ2˜NK˜—K˜šŸ œœ˜&Kšœœœ!˜?—K˜Kšœ˜K˜K˜——…—²