Telnet - 访问8080端口并发送数据

简介: Telnet - 访问8080端口并发送数据

首先说明一下前提:

① 安装了Telnet客户端(服务器);

② 本机防火墙开启了8080端口(入站规则);

如下图所示,windows下安装Telnet客户端:



后台使用的netty,会将Telnet发送的数据打印到控制台。

这里主要说明如何使用Telnet发送数据。

① cmd 进入dos


② 连接ip 端口

telnet localhost 8080




③ ctrl+]回显内容


④ 回车,进入编辑状态



⑤ 输入内容


后台支持

服务端:

package com.netty.discard;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;
/**
* 丢弃任何进入的数据
*/
public class DiscardServer {
  private int port;
  public DiscardServer(int port) {
    this.port = port;
  }
  public void run() throws Exception {
    EventLoopGroup bossGroup = new NioEventLoopGroup(); // (1)
    EventLoopGroup workerGroup = new NioEventLoopGroup();
    ServerBootstrap b = new ServerBootstrap(); // (2)
    try {
      b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class); // (3)
      b.childHandler(new ChannelInitializer<SocketChannel>(){ // (4)
        @Override
        public void initChannel(SocketChannel ch) throws Exception {
          ch.pipeline().addLast(new DiscardServerHandler());
        }
      }).option(ChannelOption.SO_BACKLOG, 128).childOption(ChannelOption.SO_KEEPALIVE, true); // (6)
      // 绑定端口,开始接收进来的连接
      ChannelFuture f = b.bind(port).sync(); // (7)
      // 等待服务器 socket 关闭 。
      // 在这个例子中,这不会发生,但你可以优雅地关闭你的服务器。
      f.channel().closeFuture().sync();
    } finally {
      workerGroup.shutdownGracefully();
      bossGroup.shutdownGracefully();
    }
  }
  public static void main(String[] args) throws Exception {
    int port;
    if (args.length > 0) {
      port = Integer.parseInt(args[0]);
    } else {
      port = 8080;
    }
    new DiscardServer(port).run();
  }
}


处理器:

package com.netty.discard;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.util.ReferenceCountUtil;
/**
* 处理服务端 channel.
*/
public class DiscardServerHandler extends ChannelInboundHandlerAdapter { 
  @Override
  public void channelRead(ChannelHandlerContext ctx, Object msg) { // (2)
    // 默默地丢弃收到的数据
//    ((ByteBuf) msg).release(); // (3)
    ByteBuf in = (ByteBuf) msg;
    try {
      while(in.isReadable()){
        System.out.print((char)in.readByte());
        System.out.flush();
      }
    }finally{
      ReferenceCountUtil.release(msg); // (2)
    } 
  }
  @Override
  public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { // (4)
    // 当出现异常就关闭连接
    cause.printStackTrace();
    ctx.close();
  }
}
目录
相关文章
|
7天前
|
NoSQL 关系型数据库 Redis
Docker的通俗理解和通过宿主机端口访问Redis容器的实例
本文目标:引导初学者入门Docker,理解镜像、容器和宿主机概念,学习常用Docker命令,特别是如何创建并从Redis容器通过宿主机端口访问。 关键点: - Docker核心:镜像(类)、容器(实例)、宿主机(运行环境)。 - `docker pull` 拉取镜像,如 `redis:3.0`。 - `docker run -d --name` 后台运行容器,如 `my-redis`。 - `-p` 参数做端口映射,如 `6379:6379`。 - `docker exec -it` 交互式进入容器,如 `bash` 或执行命令。
|
7月前
|
Linux 网络安全
linux端口连通性测试telnet、wget、ssh、curl
linux端口连通性测试telnet、wget、ssh、curl
|
1天前
|
安全 网络协议 网络安全
端口转发:解锁网络访问的新维度
端口转发技术,简化网络数据流,用于家庭至企业服务器场景。它隐藏内部网络服务,提供远程访问、个人网站公开、NAT穿透及安全的VPN连接。设置涉及路由器管理界面,添加转发规则,但需注意安全风险,仅开放必要端口并加强内部安全措施。了解和善用端口转发,提升网络服务可达性与安全性。
13 4
|
17天前
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
|
6天前
|
弹性计算 监控 JavaScript
云服务器 ECS产品使用问题之Node.js项目部署成功后无法通过公网IP+端口号访问,是什么导致的
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
1月前
|
存储 JSON JavaScript
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
|
1月前
|
JSON 网络协议 开发工具
基于Qt实现的TCP端口数据转发服务器
基于Qt实现的TCP端口数据转发服务器
30 0
基于Qt实现的TCP端口数据转发服务器
|
7月前
|
网络协议 应用服务中间件 Linux
LInux之在同一Tomcat下使用不同的端口号访问不同的项目
LInux之在同一Tomcat下使用不同的端口号访问不同的项目
72 0
|
1月前
|
数据库连接 应用服务中间件 数据库
Seata常见问题之访问seata 7091端口提示报错如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
236 0
|
1月前
|
前端开发 应用服务中间件 nginx
nginx中配置不输入端口(指定地址)访问项目的方法
nginx中配置不输入端口(指定地址)访问项目的方法
125 0