mac os 下安装及使用 telnet 命令进行 socket 测试

在这里插入图片描述

什么是 telnet


telnet 协议是 TCP/IP 协议族群中的一份子,是远程登录服务器的标注协议和主要方式

可以把 telnet 当作一种通信协议,可以访问目标主机上的软、硬件资源,telnet 平常就是查看某个端口是否可访问。我们在开发的过程中,tomcat 项目启动默认端口为 8080,那么在启动了服务之后,可以使用 telnet 查看端口是否可用

在终端使用者电脑上使用 telnet 程序输入命令,命令会在目标服务器上运行,就像直接在目标服务器的控制台上输入一样


mac os 安装 telnet


作者是在学习 netty 时写了一个 socket 例子,因为 mac os 上并没有默认安装 telnet,为了方便测试所以文章介绍如果安装以及简单使用 telnet


安装 brew

文章基于 homebrew 进行安装,没有 homebrew 的同学根据此网址安装 homebrew 安装


安装 telnet

使用 brew 命令安装 telnet

brew install telnet

telnet 命令


1、查看正在运行的端口 netstat -AaLlnW

2、连接服务器某端口,是否能够连接成功,命令格式如:telnet ip port

微信搜索【源码兴趣圈】,关注龙台,回复【资料】领取涵盖 GO、Netty、SpringCLoud Alibaba、Seata、开发规范、面试宝典、数据结构等电子书 or 视频学习资料!

比如我想要连接上图中的 8888 端口,那就是 telnet 127.0.0.1 8888

代表连接成功,成功连接后使用 ctrl+c 是退出不了的,需要使用 ctrl + ] 组合键进入 telnet 客户端,输入 quit 回车退出

socket 测试


这里通过 java 写一个小程序,模拟 serverSocket 提供服务,通过 telnet 命令连接服务端

public static void main(String[] args) throws Exception {
    ExecutorService pool = Executors.newCachedThreadPool();
    ServerSocket serverSocket = new ServerSocket(8888);
    System.out.println("====== ServerSocket 服务启动 ======");
    while (true) {
        System.out.println("====== 连接请求进入 ======");
        Socket socket = serverSocket.accept();
        System.out.println("====== 客户端连接成功 ======");

        pool.execute(() -> {
            try {
                byte[] bytes = new byte[1024];
                try {
                    InputStream inputStream = socket.getInputStream();
                    while (true) {
                        int read = inputStream.read(bytes);
                        if (read == -1) {
                            break;
                        }
                        System.out.println(new String(bytes, 0, read));
                    }
                } catch (IOException e) {
                    // ignore
                }
            } catch (Exception ex) {
                // ignore
            } finally {
                try {
                    socket.close();
                } catch (IOException e) {
                    // ignore
                }
            }
        });
    }
}

通过 telnet 命令发送请求到服务端,并将消息进行打印

日志输出

====== ServerSocket 服务启动 ======
====== 连接请求进入 ======
====== 客户端连接成功 ======
====== 连接请求进入 ======
hello world!

machen hello

结言

由于作者水平有限, 欢迎大家能够反馈指正文章中错误不正确的地方, 感谢 🙏

小伙伴的喜欢就是对我最大的支持, 如果读了文章有所收获, 希望能够 点赞、评论、关注三连!


推荐阅读:

  1. 【强烈推荐】1w 字,18 张图,彻底说清 springboot starter
  2. 【强烈推荐】谨慎使用 JDK 8 新特性并行流 ParallelStream
  3. 【强烈推荐】一文快速掌握 Redisson 如何实现分布式锁原理
  4. 【大厂面试真题】JDK 线程池中如何不超最大线程数快速消费任务
  5. 【大厂面试真题】JDK 线程池如何保证核心线程不被销毁

作者麻花,坐标帝都 Java 后端研发,励志成为架构师的一枚处女座程序员,专注高并发、框架底层源码、分布式等知识分享

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值