嗝屁小孩纸 2023-01-12 09:46 采纳率: 80.8%
浏览 39
已结题

Netty怎么用WireShark抓包呢

Netty怎么用WireShark抓包呢?
这是启动的代码
@ServiceScan
public class Server {
    public static void main(String[] args) {
        try {
            NettyServer nettyServer = new NettyServer("192.168.10.1", 8085, SerializerCode.HESSIAN.getCode());
            nettyServer.start();
        } catch (RpcException e) {
            e.printStackTrace();
        }
    }
}
@Slf4j
public class NettyServer extends AbstractRpcServer {


    /**
     * 服务器启动时 优先做一些预加载
     */
    
    /**
     *
     * @param hostName 启动服务所在机器的主机号,可以是私网或者公网
     * @param port 启动服务所在机器的端口号
     * @param serializerCode 序列化代码
     * @throws RpcException
     */
    public NettyServer(String hostName, int port, Integer serializerCode) throws RpcException {
        this.hostName = hostName.equals("localhost") || hostName.equals("127.0.0.1") ? IpUtils.getPubIpAddr() : hostName;
        log.info("start with host: {}, port: {}", this.hostName, port);
        this.port = port;
        //serviceRegistry = new NacosServiceRegistry();
        //serviceProvider = new DefaultServiceProvider();
        /**
         * 使用 SPI 机制,接口与实现类解耦到配置文件
         */
        serviceRegistry = ServiceLoader.load(ServiceRegistry.class).iterator().next();
        serviceProvider = ServiceLoader.load(ServiceProvider.class).iterator().next();

        serializer = CommonSerializer.getByCode(serializerCode);
        // 扫描 @ServiceScan 包下的 所有 @Service类,并 注册它们
        scanServices();
    }

    @Override
    public void start() {
        /**
         *  封装了 之前 使用的 线程吃 和 任务队列
         *  实现了 ExecutorService 接口
         */
        ShutdownHook.getShutdownHook().addClearAllHook();
        EventLoopGroup bossGroup = new NioEventLoopGroup();
        EventLoopGroup workerGroup = new NioEventLoopGroup();

        try {   
            /**
             *  启动服务
             */
            ServerBootstrap serverBootstrap = new ServerBootstrap();
            serverBootstrap.group(bossGroup, workerGroup)
                    .channel(NioServerSocketChannel.class)
                    .handler(new LoggingHandler(LogLevel.INFO))
                    .option(ChannelOption.SO_BACKLOG, 256)
                    .option(ChannelOption.SO_KEEPALIVE, true)
                    .childOption(ChannelOption.TCP_NODELAY, true)
                    .childHandler(new ChannelInitializer<SocketChannel>() {
                        @Override
                        protected void initChannel(SocketChannel ch) throws Exception {
                            ChannelPipeline pipeline = ch.pipeline();
                            /**
                             * 读 超时 触发, WriteIdleTime 和 allIdleTime 为 0 表示不做处理
                             */
                            pipeline.addLast(new IdleStateHandler(30, 0, 0, TimeUnit.SECONDS));
                            pipeline.addLast(new CommonEncoder(serializer));
                            pipeline.addLast(new CommonDecoder());
                            pipeline.addLast(new NettyServerHandler());
                        }
                    });
            ChannelFuture future = serverBootstrap.bind(port).sync();
            future.channel().closeFuture().sync();

        } catch (Exception e) {
            log.error("Error occurred while starting server! {}",e);
            e.printStackTrace();
        } finally {
            bossGroup.shutdownGracefully();
            workerGroup.shutdownGracefully();
        }
    }

}
Wireshark怎么抓呀,我一直没抓到

img

img

  • 写回答

2条回答 默认 最新

  • |__WhoAmI__| 2023-01-12 10:04
    关注

    具体的步骤如下:

    1.启动Netty服务,运行上面给出的启动代码
    2.启动WireShark,并选择本机网卡上的流量
    3.进行过滤,比如过滤出Netty服务端口为8085的流量
    4.开始抓包,并分析抓取到的包
    5.需要注意的是,WireShark需要管理员权限运行


    如果遇到问题,检查以下几点:

    1.依赖库是否正确引入
    2.网络是否正常
    3.端口是否被占用
    4.是否有其他程序正在使用相同的端口
    5.是否有权限启动服务
    6.配置文件是否正确
    仅供参考,望采纳,谢谢。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月20日
  • 已采纳回答 1月12日
  • 创建了问题 1月12日

悬赏问题

  • ¥15 生成的QRCode圖片加上下載按鈕
  • ¥15 板材切割优化算法,数学建模,python,lingo
  • ¥15 科来模拟ARP欺骗困惑求解
  • ¥100 iOS开发关于快捷指令截屏后如何将截屏(或从截屏中提取出的文本)回传给本应用并打开指定页面
  • ¥15 unity连接Sqlserver
  • ¥15 图中这种约束条件lingo该怎么表示出来
  • ¥15 VSCode里的Prettier如何实现等式赋值后的对齐效果?
  • ¥15 流式socket文件传输答疑
  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
  • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题