Closed wsky closed 11 years ago
RT
code by lishang
public class Sever { public static void main(String args[]) { ServerBootstrap bootstrap = new ServerBootstrap( (ChannelFactory) new NioServerSocketChannelFactory( Executors.newCachedThreadPool(), Executors.newCachedThreadPool())); bootstrap.setPipelineFactory(new ChannelPipelineFactory() { @Override public ChannelPipeline getPipeline() throws Exception { return Channels.pipeline(new TestServerHandler()); } }); bootstrap.bind(new InetSocketAddress(8000)); } private static class TestServerHandler extends SimpleChannelHandler { @Override public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) { System.out.println("This is a client connected!"); } @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) { String message = ((ChannelBuffer) e.getMessage()).toString(Charset.defaultCharset()); Channel client_ch = e.getChannel(); if(message.toLowerCase().equals("disconnect")) { ChannelBuffer buffer=ChannelBuffers.buffer(message.length()); buffer.writeBytes(message.getBytes()); e.getChannel().write(buffer); client_ch.disconnect(); client_ch.close(); } else { CommandHandler handle=new CommandHandler(message); String[] commands=handle.handler(); ChannelBuffer buffer=ChannelBuffers.buffer(LogicHandler.ImpCommand(commands).length()); buffer.writeBytes(LogicHandler.ImpCommand(commands).getBytes()); e.getChannel().write(buffer); // client_ch.write(LogicHandler.ImpCommand(commands)); } } } }
usage:
echo "cmd"|nc $ip $port
RT
code by lishang
usage: