【网络编程】基于TCP完成ECHO服务

ECHO服务: ECHO服务器仅返回它从客户处收集到的所有数据。是网络管理员测试可达性、调试协议软件及识别选路问题的重要工具,周知端口位于7

与此类似,Time服务的知名端口是37,记录了从1900年1月1日午夜起所经历的秒数;DATETIME服务的知名端口是13,允许获得当前的日期和时间

题目:

一.使用echo协议,编写程序测试主机可达性:它发送报文时对应答计时,以此测试可达性. 若5秒内收不到应答,则声明目的主机不可达, 进一步,估计网络延时。提交设计及程序代码

首先打开Telnet服务进行测试

image-20220315091217666

然后使用telnet测试远程linux服务器,成功连上并返回结果

image-20220315113751666

客户端发送代码以及注释

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;

public class Client {
    private static final BufferedReader KEYBOARD_INPUT = new BufferedReader(new InputStreamReader(System.in));

    public static String getString(String prompt) throws Exception { // 键盘信息

        System.out.print(prompt);
        String str = KEYBOARD_INPUT.readLine();
        return str;
    }

    public static void main(String[] args) throws Exception {
        //创建socket,指定ip和端口
        Socket client = new Socket("124.71.99.11", 7);
        //准备出Scanner与PrintWriter,一个读取服务器反馈消息,一个发送本地消息
        Scanner in = new Scanner(client.getInputStream());
        PrintStream out = new PrintStream(client.getOutputStream());
        //创建Scanner读取本地输入
        Scanner scan=new Scanner(System.in);

        boolean flag = true; // 循环标记
        while (flag) {
            System.out.print("发送:");
            String input = scan.nextLine().trim();
            //发送给服务器
            out.println(input);
            //服务器端有回应
            if (in.hasNext()) {
                System.out.println("接收:"+in.nextLine()); // 输出回应信息
            }
            if ("end".equalsIgnoreCase(input)) {
                flag = false; // 修改循环标记
            }
        }
        scan.close(); // 关闭输入流
        out.close(); // 关闭输出流
        client.close(); // 关闭客户端
    }
}

实现echo结果如下:

image-20220315115855029
如何写得不错就点个赞吧,欢迎来我的个人博客网站😊www.liangyuanshao.top

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小梁说代码

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值