#java #tcp #netty
#java #tcp #netty
Вопрос:
Я делаю свои первые шаги с netty, и мне интересно следующее поведение netty:
Когда я использую следующий обработчик:
public class SimpleServerHandler extends ChannelInboundHandlerAdapter {
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
ByteBuf inBuffer = (ByteBuf) msg;
String received = inBuffer.toString(CharsetUtil.UTF_8);
System.out.println(dateFormat.format(new Date()) " Server received: " received);
ctx.writeAndFlush(Unpooled.copiedBuffer("Hello " received, CharsetUtil.UTF_8));
}
@Override
public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
cause.printStackTrace();
ctx.close();
}
}
И затем я отправляю TCP-пакет с «Отправителем пакета», я получаю три пакета
первый — от «отправителя пакета» на сервер, второй — ответ от сервера (что-то вроде «Привет, тесттест»), а затем .. и я не знаю, откуда приходит этот пакет: третий — от сервера к «отправителю пакета», без какого-либо содержимого
Мой сервер java:
public class MainNettyApplicationServer {
public static void main(String[] args) throws InterruptedException {
EventLoopGroup group = new NioEventLoopGroup();
try {
ServerBootstrap serverBootstrap = new ServerBootstrap();
serverBootstrap.group(group);
serverBootstrap.channel(NioServerSocketChannel.class);
serverBootstrap.localAddress(new InetSocketAddress("10.0.0.2", 11111));
serverBootstrap.childHandler(new ChannelInitializer<SocketChannel>() {
protected void initChannel(SocketChannel socketChannel) throws Exception {
socketChannel.pipeline().addLast(new SimpleServerHandler());
}
});
ChannelFuture channelFuture = serverBootstrap.bind().sync();
System.out.println("Server started.");
channelFuture.channel().closeFuture().sync();
} catch (Exception e) {
e.printStackTrace();
} finally {
group.shutdownGracefully().sync();
}
}
}
Комментарии:
1. Сегмент подтверждения?
2. Какие флаги TCP присутствуют в обоих пакетах?
3. не могли бы вы, пожалуйста, сказать мне, какой инструмент необходим для просмотра флагов TCP?