Home
Name Modified Size InfoDownloads / Week
Examples 2014-07-11
NetworkService1.0.0.3 2014-07-06
NS 2010-02-23
readme.txt 2011-12-25 4.2 kB
NetworkService1.0.0.2.zip 2011-12-17 414.1 kB
NetworkService1.0.0.1_2.zip 2010-11-26 233.2 kB
NetworkService1.0.0.1_1.rar 2010-03-08 232.4 kB
NetworkService1.0.0.1.rar 2010-02-24 233.5 kB
Totals: 8 Items   1.1 MB 0
public class BasicExampleHowToUseNetworkService {

    public static void main(String[] args) throws Exception {

        //create a new instance of NetworkService

        NetworkService ns = new NetworkService(new ClientInterfaceImpl());

        //register a ClientStateChangeListener to recieve notifications 
        //about group members state.

        ns.addClientStateChangeListener(new ClientStateChangeListenerImpl());

        //start the service.
        ns.startService(false);

        Random gen = new Random();

        Thread.sleep(gen.nextInt(1000));

        //send a message to all group members.
        //(in this example we are using the default multicast group address)

        //create your serializable message

        MyTextMessage msg = new MyTextMessage("hello all!");

        ClientID group = ns.getPublicClientID();

        //wrap it in a Message Object

        Message publicMessage = new Message(null, msg, group);

        //for verson older than (1.0.0.0.2) use ns.broadcast("hello all!");

        ns.sendMessage(publicMessage);

        //send a message to one of the group members.



        ClientID agroupmember = ns.getClientsTable().values().iterator().next();

        msg = new MyTextMessage("hello!");

        Message privateMessage = new Message(null, msg, agroupmember);

        //for verson older than (1.0.0.0.2) use ns.sendMessage("hello!",agroupmember);
        ns.sendMessage(privateMessage);


        Thread.sleep(gen.nextInt(1000));

        msg = new MyTextMessage("bye all!");
        
        publicMessage = new Message(null,msg, group);


        ns.sendMessage(publicMessage);

        //stop the service

        ns.stopService();

    }

    static class ClientInterfaceImpl implements ClientInterface {

        public ClientInterfaceImpl() {
        }

        public void publicMessageReceived(String msg, ClientID from) {
             //deprecated
        }

        public void privateMessageReceived(String msg, ClientID from) {
             //deprecated
        }

        public void clientConnected(SocketStreamRW connection) {
            //accept TCP connection here.
         //See: NetworkService.connect(ClientID);
        }

        public void publicMessageReceived(Message msg) {
            String from = msg.getClientID().name();

            System.out.println(from + "says:");
            
            MyTextMessage theMsg = (MyTextMessage) msg.getContent();
            
            theMsg.print();

        }

        public void privateMessageReceived(Message msg) {
            String from = msg.getClientID().name();

            System.out.println(from + "says:");
            
            MyTextMessage theMsg = (MyTextMessage) msg.getContent();
            
            theMsg.print();
        }

        public void errMessage(String error, String from) {
            //used for debugging
        }

        public void infMessage(String info, String from) {
              //used for debugging
        }
    }

    private static class ClientStateChangeListenerImpl implements ClientStateChangeListener {

        public ClientStateChangeListenerImpl() {
        }

        public void clientStateChanged(ClientStateChangeEvent evt) {
            String name = evt.getClient().name();
            String host = evt.getClient().hostName();
            int state = evt.getNewState();
            String s;
            switch (state) {
                case ClientStateChangeEvent.ON:
                    s = "on";
                    break;
                case ClientStateChangeEvent.OFF:
                    s = "off";
                    break;
                default:
                    s = "unknown";
            }

            System.out.println(name + " on " + host + " is " + s);
        }
    }

    private static class MyTextMessage implements Serializable {

        private String msg;

        public MyTextMessage(String msg) {
            this.msg = msg;
        }

        public void print() {
            System.out.println(msg);
        }
    }
}
Source: readme.txt, updated 2011-12-25