📄 testserver5.java
字号:
/* * Copyright (c) 2003 - 2007, Silvio Meier and Tobias Reinhard * * All rights reserved. * * Redistribution and use in source and binary forms, * with or without modification, are permitted provided * that the following conditions are met: * * o Redistributions of source code must retain the above * copyright notice, this list of conditions and the * following disclaimer. * o Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the * following disclaimer in the documentation and/or other * materials provided with the distribution. * o The names of its contributors may not be used to endorse * or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */package net.sf.cscc.test;import java.util.Date;import java.util.Vector;import net.sf.cscc.CommunicationEvent;import net.sf.cscc.CommunicationEventObserver;import net.sf.cscc.DataEvent;import net.sf.cscc.DataEventReceivingObserver;import net.sf.cscc.ServerConnectionManager;// The server implements directly the data observer interface and the communication// observer interface// test other huge data blocks sendpublic class TestServer5 implements DataEventReceivingObserver, CommunicationEventObserver { ServerConnectionManager scm; // provides the server connection public TestServer5() { scm = new ServerConnectionManager(2510); // observer scm.addObserver((CommunicationEventObserver)this); scm.addObserver((DataEventReceivingObserver)this); // start listening for clients scm.beginListening(); } public void receiveEvent(DataEvent de) { System.out.println("Client says " + de.getData().toString() + " / Time " + de.getEventKey()); // new vector container Vector v = new Vector(); v.add(new String("msg broker string vector")); v.add(new Integer(972)); // Nachricht Message5 msg = new Message5(100, (Object) new String("1"), (Object) new String("2"), (Object) new String("msg broker string (ificomm)"), v); // data event creation DataEvent deRet = new DataEvent(new Long((new Date()).getTime()),msg); //System.out.println("send server before singel"); // send messge to client..... //scm.sendDataEvent(deRet, de.getClientId()); //System.out.println("send server after singel"); // send bradcast message to client. //System.out.println("send server before multi"); scm.sendBroadCastEvent(deRet); //System.out.println("send server after muli"); System.gc(); } public void send() { while (true) { // new vector container Vector v = new Vector(); v.add(new String("msg broker string vector")); v.add(new Integer(972)); // Nachricht Message5 msg = new Message5(100, (Object) new String("1"), (Object) new String("2"), (Object) new String("msg broker string (ificomm)"), v); // data event creation DataEvent deRet = new DataEvent(new Long((new Date()).getTime()),msg); System.out.println("send server before singel"); // send messge to client..... //scm.sendDataEvent(deRet, de.getClientId()); System.out.println("send server after singel"); // send bradcast message to client. //System.out.println("send server before multi"); scm.sendBroadCastEvent(deRet); //System.out.println("send server after muli"); System.gc(); } } // receives all the communication events public void receiveEvent(CommunicationEvent ce) { String data = ""; // if the communication event contains data if (ce.getData() == null) { System.out.println("No additional data for comminication event"); } else { // then it is a description about the client --> client number. System.out.println("Number of client: " + ce.getData()); data = ce.getData().toString(); } // ask for all possible communication events. switch (ce.getEventId()) { case (CommunicationEvent.CONNECTION_ESTABLISHED): System.out.println("connection opened!"); break; case (CommunicationEvent.CONNECTION_BROKEN): System.out.println("connection broken"); break; case (CommunicationEvent.CONNECTION_CLOSED): System.out.println("connection closed"); break; case (CommunicationEvent.CONNECTION_START_LISTENING): System.out.println("start listening"); break; case (CommunicationEvent.CONNECTION_STOP_LISTENING): System.out.println("stop listening"); break; } } // starts up the server public static void main(String[] args) { TestServer5 t = new TestServer5(); //t.send(); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -