ECHO服务: ECHO服务器仅返回它从客户处收集到的所有数据。是网络管理员测试可达性、调试协议软件及识别选路问题的重要工具,周知端口位于7
与此类似,Time服务的知名端口是37,记录了从1900年1月1日午夜起所经历的秒数;DATETIME服务的知名端口是13,允许获得当前的日期和时间
题目:
一.使用echo协议,编写程序测试主机可达性:它发送报文时对应答计时,以此测试可达性. 若5秒内收不到应答,则声明目的主机不可达, 进一步,估计网络延时。提交设计及程序代码
首先打开Telnet服务进行测试
![image-20220315091217666](https://liangyuanshao.oss-cn-shenzhen.aliyuncs.com/img/image-20220315091217666.png)
然后使用telnet测试远程linux服务器,成功连上并返回结果
![image-20220315113751666](https://liangyuanshao.oss-cn-shenzhen.aliyuncs.com/img/image-20220315113751666.png)
客户端发送代码以及注释
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结果如下:
如何写得不错就点个赞吧,欢迎来我的个人博客网站😊www.liangyuanshao.top