【网络编程】基于TCP完成ECHO服务(更新)

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

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


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


题目:

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


首先打开Telnet服务进行测试



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



客户端发送代码以及注释

package my;
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) {
            long start = System.currentTimeMillis();
            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; // 修改循环标记
            }
            long end = System.currentTimeMillis();
            System.out.println("延时:"+(end-start)+"毫秒");
        }
        scan.close(); // 关闭输入流
        out.close(); // 关闭输出流
        client.close(); // 关闭客户端
    }
}

实现echo结果如下:

相关文章
|
4天前
|
Kubernetes 应用服务中间件 Docker
Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件
Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件
|
1天前
|
域名解析 网络协议 网络性能优化
如何提升自建DNS服务下的网络体验
网络质量和网络体验是通信过程中的两个不同层面,质量涉及设备上下行表现,而体验关乎端到端通信效果。衡量质量常用带宽、延迟、丢包率等指标;体验则关注可访问性,DNS解析速度和服务位置等。现代路由器能自动调整网络质量,普通用户无需过多干预。自建DNS服务时,选择权威DNS能解决可访问性,但可能不提供最优体验。AdguardHome和Clash等工具能进一步优化DNS解析,提升网络体验。
21 6
如何提升自建DNS服务下的网络体验
|
1天前
|
云安全 安全 网络安全
云端防御策略:融合云服务与网络安全的未来之路
【5月更文挑战第18天】 在数字化浪潮的推动下,企业纷纷将业务迁移至云端以追求更高效率和灵活性。然而,随着数据和服务的集中,安全威胁也随之增加。本文探讨了云计算环境下的安全挑战,分析了当前云服务中存在的安全隐患,并提出了一系列创新的网络安全防护措施。这些措施旨在帮助组织构建一个既灵活又安全的云环境,确保信息资产的完整性、保密性和可用性得到充分保护。
|
3天前
|
网络协议 网络性能优化
UDP与TCP:了解这两种网络协议的不同之处
UDP与TCP:了解这两种网络协议的不同之处
|
3天前
|
网络协议
TCP三次握手:实现网络通信的神秘仪式
TCP三次握手:实现网络通信的神秘仪式
|
4天前
|
运维 安全 网络安全
云端防御策略:融合云服务的网络安全新范式
【5月更文挑战第15天】 随着企业逐渐将关键业务迁移至云平台,云计算服务的安全性成为维护信息安全的前沿阵地。本文深入探讨了云服务模型中的网络安全挑战与对策,分析了在公有云、私有云和混合云环境下,如何通过创新的安全架构和技术手段强化数据保护和威胁防御。文章着重讨论了多租户环境中的数据隔离问题、云安全访问控制的最新进展以及针对云环境的安全运维管理实践。通过综合分析,提出了一个多层次、动态适应的安全框架,旨在为云服务用户提供一个更加安全、可靠的计算环境。
|
4天前
|
安全
哪些因素影响网络交易商品(服务)的安全性?
【5月更文挑战第14天】哪些因素影响网络交易商品(服务)的安全性?
9 0
|
4天前
|
网络协议 算法 网络性能优化
Qt TCP网络上位机的设计(通过网络编程与下位机结合)
Qt TCP网络上位机的设计(通过网络编程与下位机结合)
Qt TCP网络上位机的设计(通过网络编程与下位机结合)
|
4天前
|
网络协议 Unix 网络性能优化
网络编程 —— TCP 和 UDP 编程详解
网络编程 —— TCP 和 UDP 编程详解
网络编程 —— TCP 和 UDP 编程详解
|
4天前
|
网络协议 网络性能优化 网络架构

热门文章

最新文章