1 package org.sapia.ubik.net.nio.tcp.acceptor; 2 3 import java.io.BufferedReader ; 4 import java.io.InputStreamReader ; 5 import java.io.OutputStream ; 6 import java.io.PrintStream ; 7 import java.net.InetSocketAddress ; 8 import java.net.Socket ; 9 10 import org.sapia.ubik.net.nio.ChannelHandler; 11 import org.sapia.ubik.net.nio.ChannelHandlerFactory; 12 import org.sapia.ubik.net.nio.ChannelManager; 13 import org.sapia.ubik.net.nio.Dispatcher; 14 import org.sapia.ubik.net.nio.NioDebug; 15 import org.sapia.ubik.net.nio.acceptor.Acceptor; 16 import org.sapia.ubik.net.nio.dispatcher.ThreadedDispatcher; 17 import org.sapia.ubik.util.Debug; 18 19 28 public class EchoChannelHandlerFactory implements ChannelHandlerFactory{ 29 30 31 34 public ChannelHandler createHandler() { 35 return new EchoHandler(); 36 } 37 38 public static void main(String [] args) { 39 Socket client = null; 40 Acceptor acceptor = null; 41 try{ 42 ChannelManager manager = new TCPChannelManager(new InetSocketAddress (8080), new EchoChannelHandlerFactory()); 43 Dispatcher disp = new ThreadedDispatcher(); 45 acceptor = new Acceptor(manager, disp); 46 Debug debug = NioDebug.getInstance(); 47 debug.on(true); 48 acceptor.setDebug(debug); 49 acceptor.start(); 50 System.out.println("******* connecting..."); 51 client = new Socket ("localhost", 8080); 52 System.out.println("******* writing..."); 53 OutputStream out = client.getOutputStream(); 54 PrintStream ps = new PrintStream (out, true); 55 ps.println("Hello World!!!!"); 56 ps.flush(); 57 System.out.println("******* receiving..."); 58 BufferedReader reader = new BufferedReader (new InputStreamReader (client.getInputStream())); 59 System.out.println(reader.readLine()); 60 System.out.println("******* received"); 61 } catch (Exception e){ 62 e.printStackTrace(); 63 } finally{ 64 if(client != null){ 65 try{ 66 client.close(); 67 }catch(Exception e){} 68 } 69 if(acceptor != null){ 70 acceptor.stop(); 71 } 72 } 73 } 74 75 } 76 | Popular Tags |