/** * license (MIT) Copyright Nubisa Inc. 2014 */ import jxm.*; import javax.xml.bind.DatatypeConverter; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.concurrent.atomic.AtomicInteger; public class socketTest { public static int total = 1; public static int port = 8000; public static String ip = "127.0.0.1"; /** * @param args */ public static void main(String[] args) throws Exception { if (args.length == 0) { System.out.println("Usage:java -jar jxm [numberOfClients] url/ip port"); return; } else total = DatatypeConverter.parseInt(args[0]); if(args.length>1){ ip = args[1]; } if(args.length>2){ port = DatatypeConverter.parseInt(args[2]); } System.out.println("Connecting to target " + ip + ":" + port); drawMenu(); Test test = new Test(); initClient(test); Client client = clients[0]; for (int i = 1; i < total; i++) clients[i].Connect(); if (clients[0].Connect()) { String code = ""; System.out.println("ready!"); while (!code.equalsIgnoreCase("q")) { if (code.length() > 0) { if (code.equals("1")) { callMethod1(); } } System.out.println(":"); code = readMenuCode(); } System.out.println("exiting application.."); exitApp = true; } } static boolean exitApp = false; static String readMenuCode() throws Exception { int n = System.in.read(); return new String(new char[]{(char) n}); } static void drawMenu() { String menus[] = { "1 - Call Server.testCall", "q - Exit" }; for (String m : menus) System.out.println(m); } static void callMethod1() { Test.counter = new AtomicInteger(0); Calendar now = GregorianCalendar.getInstance(); System.out.println("Sending to "+total+" clients"); long tm = now.getTimeInMillis(); Test.timer = tm; for(int q=0;q<20;q++){ for (int i = 0; i < total; i++) { clients[i].Call("chatMessage", "Samples/test" + i + "-" + tm, null); } try{ Thread.sleep(1000); // for local tests 1 instead 1000 }catch(Exception e){ } System.out.println("ANOTHER SET IS ON THE WAY! " + q); } } static Client[] clients; public static AtomicInteger opens; public static void initClient(Test test) { opens = new AtomicInteger(0); clients = new Client[total]; ClientEvents dev = new ClientEvents() { @Override public void OnError(Client c, String Message) { System.out.println("Error received:" + Message); } @Override public void OnConnect(Client c) { int n = opens.incrementAndGet(); System.out.println("Total :" + n); } @Override public void OnClose(Client c) { int n = opens.decrementAndGet(); System.out.println("Total :" + n); } @Override public void OnEventLog(Client c, String log, LogLevel level) { if(level == LogLevel.Critical) System.out.println("WARNING:" + c.GetClientId() + ":" + log); } @Override public void OnSubscription(Client c, Boolean subscribe, String group) { } }; for (int i = 0; i < total; i++) { clients[i] = new Client(new Test(), "chat", "NUBISA-STANDARD-KEY-CHANGE-THIS" , ip, port, false, true); clients[i].Events = dev; } } }