echo 작업중
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
//package com.eactive.httpmockserver.socket;
|
||||
//
|
||||
//import java.nio.ByteOrder;
|
||||
//
|
||||
//import javax.annotation.PreDestroy;
|
||||
//
|
||||
//import org.slf4j.Logger;
|
||||
//import org.slf4j.LoggerFactory;
|
||||
//import org.springframework.stereotype.Component;
|
||||
//
|
||||
//import io.netty.bootstrap.ServerBootstrap;
|
||||
//import io.netty.channel.Channel;
|
||||
//import io.netty.channel.ChannelFuture;
|
||||
//import io.netty.channel.ChannelInitializer;
|
||||
//import io.netty.channel.ChannelOption;
|
||||
//import io.netty.channel.ChannelPipeline;
|
||||
//import io.netty.channel.EventLoopGroup;
|
||||
//import io.netty.channel.nio.NioEventLoopGroup;
|
||||
//import io.netty.channel.socket.SocketChannel;
|
||||
//import io.netty.channel.socket.nio.NioServerSocketChannel;
|
||||
//import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
|
||||
//import io.netty.handler.codec.LengthFieldPrepender;
|
||||
//import io.netty.handler.codec.string.StringDecoder;
|
||||
//import io.netty.util.CharsetUtil;
|
||||
//
|
||||
//@Component
|
||||
//public class EchoSocketServer {
|
||||
// private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
//
|
||||
// private Channel channel;
|
||||
//
|
||||
// public void start() {
|
||||
// EventLoopGroup bossGroup = new NioEventLoopGroup();
|
||||
// EventLoopGroup workerGroup = new NioEventLoopGroup();
|
||||
// try {
|
||||
// ServerBootstrap server = new ServerBootstrap();
|
||||
// // @formatter:off
|
||||
// server.group(bossGroup, workerGroup)
|
||||
// .channel(NioServerSocketChannel.class)
|
||||
// .childHandler(new ChannelInitializer<SocketChannel>() {
|
||||
// @Override
|
||||
// protected void initChannel(SocketChannel ch) throws Exception {
|
||||
// ChannelPipeline pipeline = ch.pipeline();
|
||||
// //pipeline.addLast(new LengthFieldBasedFrameDecoder (ByteOrder.LITTLE_ENDIAN,Integer.MAX_VALUE,0,8,0,8,true));
|
||||
// //pipeline.addLast(new LengthFieldPrepender(8));
|
||||
// //pipeline.addLast(new LengthFieldBasedFrameDecoder (Integer.MAX_VALUE,0,8,0,8));
|
||||
// //pipeline.addLast(new LengthFieldBasedFrameDecoder (Integer.MAX_VALUE,0,2,0,2));
|
||||
// //pipeline.addLast(new StringDecoder(CharsetUtil.UTF_8));
|
||||
// pipeline.addLast(new EchoSocketServerHandler());
|
||||
// }
|
||||
// })
|
||||
// .option(ChannelOption.SO_BACKLOG, 128)
|
||||
// .childOption(ChannelOption.SO_KEEPALIVE, false);
|
||||
// // @formatter:on
|
||||
//
|
||||
// ChannelFuture channelFuture = server.bind(28181).sync();
|
||||
// channel = channelFuture.channel().closeFuture().sync().channel();
|
||||
// } catch (Exception e) {
|
||||
// logger.error(e.getMessage());
|
||||
// } finally {
|
||||
// bossGroup.shutdownGracefully();
|
||||
// workerGroup.shutdownGracefully();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @PreDestroy
|
||||
// public void stop() {
|
||||
// if (channel != null) {
|
||||
// channel.close();
|
||||
// channel.parent().closeFuture();
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
@@ -0,0 +1,72 @@
|
||||
//package com.eactive.httpmockserver.socket;
|
||||
//
|
||||
//import java.nio.charset.StandardCharsets;
|
||||
//
|
||||
//import org.slf4j.Logger;
|
||||
//import org.slf4j.LoggerFactory;
|
||||
//import org.springframework.stereotype.Component;
|
||||
//
|
||||
//import io.netty.buffer.ByteBuf;
|
||||
//import io.netty.channel.ChannelHandler.Sharable;
|
||||
//import io.netty.channel.ChannelHandlerContext;
|
||||
//import io.netty.channel.ChannelInboundHandlerAdapter;
|
||||
//
|
||||
//@Component
|
||||
//@Sharable
|
||||
//public class EchoSocketServerHandler extends ChannelInboundHandlerAdapter {
|
||||
// private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
//
|
||||
// private int DATA_LENGTH = 2048;
|
||||
// private ByteBuf buff;
|
||||
//
|
||||
// @Override
|
||||
// public void handlerAdded(ChannelHandlerContext ctx) {
|
||||
// logger.info("EchoSocketServer handlerAdded");
|
||||
// buff = ctx.alloc().buffer(DATA_LENGTH);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void channelActive(ChannelHandlerContext ctx) {
|
||||
// logger.info("Remote Address: " + ctx.channel().remoteAddress().toString());
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void channelRead(ChannelHandlerContext ctx, Object msg) {
|
||||
// logger.info("EchoSocketServer channelRead");
|
||||
//// ByteBuf buf = (ByteBuf) msg;
|
||||
//// byte[] bytes = new byte[buf.readableBytes()];
|
||||
//// buf.readBytes(bytes);
|
||||
//// String data = new String(bytes, StandardCharsets.UTF_8);
|
||||
//
|
||||
//// ByteBuf mBuf = (ByteBuf) msg;
|
||||
//// buff.writeBytes(mBuf); // 클라이언트에서 보내는 데이터가 축적됨
|
||||
//// mBuf.release();
|
||||
////
|
||||
//// //final ChannelFuture f = ctx.writeAndFlush(buff);
|
||||
////
|
||||
//// System.out.println("TcpServer: " + buff.toString());
|
||||
//// ctx.writeAndFlush(buff);
|
||||
//
|
||||
// String message = ((ByteBuf) msg).toString();
|
||||
// System.out.println("message=" + message);
|
||||
// ctx.write(msg);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
|
||||
// logger.info("EchoSocketServer channelReadComplete");
|
||||
// ctx.flush();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void handlerRemoved(ChannelHandlerContext ctx) {
|
||||
// logger.info("EchoSocketServer handlerRemoved");
|
||||
// buff = null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
|
||||
// ctx.close();
|
||||
// cause.printStackTrace();
|
||||
// }
|
||||
//}
|
||||
@@ -0,0 +1,45 @@
|
||||
//package com.eactive.httpmockserver.socket;
|
||||
//
|
||||
//import org.slf4j.Logger;
|
||||
//import org.slf4j.LoggerFactory;
|
||||
//import org.springframework.beans.factory.annotation.Autowired;
|
||||
//import org.springframework.stereotype.Controller;
|
||||
//import org.springframework.web.bind.annotation.RequestMapping;
|
||||
//import org.springframework.web.bind.annotation.ResponseBody;
|
||||
//
|
||||
//@Controller
|
||||
//public class SocketServerManageController {
|
||||
// private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
//
|
||||
// @Autowired
|
||||
// private EchoSocketServer echoSocketServer;
|
||||
//
|
||||
// @RequestMapping("/manage/socket/startEchoSocketServer")
|
||||
// @ResponseBody
|
||||
// public String startEchoServer() {
|
||||
// logger.info("starting..");
|
||||
//
|
||||
// new Thread(new Runnable() {
|
||||
// @Override
|
||||
// public void run() {
|
||||
// try {
|
||||
// echoSocketServer.start();
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
// }).start();
|
||||
//
|
||||
// logger.info("started");
|
||||
// return "Success";
|
||||
// }
|
||||
//
|
||||
// @RequestMapping("/manage/socket/stopEchoSocketServer")
|
||||
// @ResponseBody
|
||||
// public String stopEchoServer() {
|
||||
// logger.info("stopping..");
|
||||
// echoSocketServer.stop();
|
||||
// logger.info("stopped");
|
||||
// return "Success";
|
||||
// }
|
||||
//}
|
||||
Reference in New Issue
Block a user