package hu.ppke.itk.itkStock.nio.test; import hu.ppke.itk.itkStock.nio.core.AbstractWorker; import hu.ppke.itk.itkStock.nio.core.NioClient; import hu.ppke.itk.itkStock.nio.core.NioServer; import hu.ppke.itk.itkStock.nio.core.RspHandler; import hu.ppke.itk.itkStock.nio.protocol.ClientsideAuthenticationProtocolCommandWorker; import hu.ppke.itk.itkStock.nio.protocol.ProtocolTools; import hu.ppke.itk.itkStock.nio.protocol.ProtocolWorker; import hu.ppke.itk.itkStock.nio.protocol.ServersideAuthenticationProtocolCommandWorker; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.net.InetAddress; public class Test { public static void main(String[] args) throws IOException { try { InetAddress serverArrd = InetAddress.getByName("localhost"); int serverPort = 9090; // create NIO server AbstractWorker protocolWorker = new ProtocolWorker(); // add a new commandWorker to listen command 100, for example for auth. ((ProtocolWorker) protocolWorker).addProtocolCommandWorker((short) 100, new ServersideAuthenticationProtocolCommandWorker()); new Thread(protocolWorker).start(); new Thread(new NioServer(null, serverPort, protocolWorker)).start(); // create NIO clients { NioClient client = new NioClient(serverArrd, serverPort); Thread t = new Thread(client); t.setDaemon(true); t.start(); RspHandler handler = new RspHandler(); // add new commandWorker to respond for command 101 (auth. response) handler.addProtocolCommandWorker((short)101, new ClientsideAuthenticationProtocolCommandWorker()); ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); byteStream.write(ProtocolTools.shortToBytes((short) 100)); byteStream.write("username kapamester".getBytes()); client.send(byteStream.toByteArray(), handler); handler.waitForResponse(); } } catch (Exception e) { e.printStackTrace(); } System.out.println("MAIN END"); } }