/* Author: Jeff Dalton * Updated: Mon Jul 9 16:15:43 2001 by Jeff Dalton * Copyright: (c) 2001, AIAI, University of Edinburgh */ package ix.test; import java.io.*; import java.net.*; import java.util.*; import ix.util.lisp.*; import ix.util.*; public class MediumLevelIPCTest { public static void main(String[] argv) { Parameters.processCommandLineArguments(argv); int serverPort = Parameters.getInt("server.port", -1); int clientPort = Parameters.getInt("client.port", -1); Parameters.checkParameterUse(); // Set up communication strategy. IPC.SocketlikeCommunicationStrategy strategy = new IPC.ObjectStreamCommunicationStrategy(); IPC.setDefaultCommunicationStrategy(strategy); // Set up server side if a server.port was specified if (serverPort > -1) { strategy.setDestinationData( "Self", new IPC.ServiceAddress("localhost", serverPort)); strategy.setupServer( "Self", new IPC.MessageListener() { public void messageReceived (IPC.InputMessage message) { } }); } // Set up client side if a client.port was specified. if (clientPort > -1) { strategy.setDestinationData( "Other", new IPC.ServiceAddress("localhost", clientPort)); while(true) { final String text = Util.askLine("Send: "); IPC.Connection connection = strategy.getConnection("Other"); Serializable closure = new Serializable() { public String toString() { return "Enclosed string = " + Util.quote(text); } }; // See what amazing things we can send. connection.send(closure); connection.send(Lisp.list()); connection.send(Lisp.list(text, Symbol.intern(text))); LListCollector col = new LListCollector(); col.add("c1"); col.add(text); connection.send(col); } } } }