首页 > 编程语言 >Java高级05telnet,Socket

Java高级05telnet,Socket

时间:2024-09-21 16:22:04浏览次数:11  
标签:05telnet Java Socket System len new os 节点 String

telnet

既测试了端口号也测试了IP是否通畅

//80是开放的端口号
telnet 111.206.208.135 80
//退出
ctrl+]
quit
//查看本机使用的端口号
telnet -ano

Socket

//客户端
public static void main(String[] args) {
        // 创建一个Socket对象,指定服务器的IP地址和端口号
        try {
            Socket socket = new Socket("localhost", 8080);
            OutputStream os = null;
            InputStream is = null;
            while (true) {
                // 输出流发送信息
                os = socket.getOutputStream();
                Scanner sc = new Scanner(System.in);
                System.out.println("输入你要发送的信息 (输入 'exit' 退出):");
                String message = sc.nextLine();
                if ("exit".equalsIgnoreCase(message)) {
                    break;
                }
                os.write(message.getBytes());
                os.flush();

                // 接受服务端数据
                is = socket.getInputStream();
                byte[] buffer = new byte[1024];
                int len;
                StringBuilder response = new StringBuilder();
                while ((len = is.read(buffer)) != -1) {
                    response.append(new String(buffer, 0, len));
                    if (len < buffer.length) break; // 假设每次发送的数据不超过1024字节
                }
                System.out.println("从服务器接收的数据: " + response.toString());
            }
              is.close();
              os.close();
              socket.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
//服务端
public static void main(String[] args){
        //创建一个服务端Socket
        try {
            ServerSocket ss = new ServerSocket(8080);
            System.out.println("服务器启动成功!");

                //监听客户端连接a
                Socket socket = ss.accept();
                InputStream is = null;
                OutputStream os = null;
                FileOutputStream fos = new FileOutputStream("D:\\student.txt");
                while (true) {
                    // 接收客户端消息
                    is = socket.getInputStream();
                    byte[] buffer = new byte[1024];
                    int len;
                    StringBuilder message = new StringBuilder();
                    while ((len = is.read(buffer)) != -1) {
                        message.append(new String(buffer, 0, len));
                        fos.write(buffer, 0, len);
                        if (len < buffer.length) break; // 假设每次发送的数据不超过1024字节


                    }
                    System.out.println("接收到的消息: " + message.toString());
                    // 服务端给客户端输出数据
                    os = socket.getOutputStream();
                    Scanner sc = new Scanner(System.in);
                    System.out.println("输入回复信息 (输入 'exit' 退出):");
                    String msg = sc.nextLine();
                    if ("exit".equalsIgnoreCase(msg)) {
                        break;
                    }
                    fos.flush();
                    fos.close();
                    os.write(msg.getBytes());
                    os.flush();
                }
            //关闭资源
            os.close();
            is.close();
            socket.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

XML

第一步:创建解析器SAXReader saxReader = new SAXReader();
第二部:通过解析器获得dom文档Document doc = saxReader.read()
第三步:获得根节点Element root = doc.getRootElement();
第四步:获得所有子节点Iterator iter = root.elementIterator();
第五步:在获得子节点后再次迭代获得孙子节点,后面若还有更小节点以此类推,迭代获得
第六步:使用nextElement.getName()和nextElement.getText()。

//xml文件
<?xml version="1.0" encoding="utf-8" ?>
<students>
    <student >
        <id class = "shuxing">1234</id>
        <name>绽放三</name>
        <age>18</age>
    </student>
    <student>
        <id>2234</id>
        <name>绽放四</name>
        <age>20</age>
    </student>
</students>
//测试类获得各节点内容
public static void main(String[] args) {
        //使用dom4j解析xml
        //创建解析器
        SAXReader saxReader = new SAXReader();
        //通过解析器把物理文件转换成内存数据,通过解析器将物理文件按读到内存
        try {
            Document doc = saxReader.read("D:\\ideaProject\\J4061Advanced\\Java05XML\\src\\StudentList.xml");
            //通过内存中的数据获得根节点
            Element root = doc.getRootElement();
            //先获取根节点的迭代器,然后进行迭代里面的节点
            Iterator<Element> iter = root.elementIterator();
            while (iter.hasNext()) {
                //从根节点获取到子节点
                Element element = iter.next();
                //如果想获取对象元素里的标签内容则需要继续获取元素的标签迭代器
        Iterator<Element> iter2 = element.elementIterator();
                while (iter2.hasNext()) {
                    Element e2 = iter2.next();
         //获取某个子节点标签里的属性和属性值
            String class = e2.attributeValue("class");
            System.out.println(Class);
            String value = e2.getText();
        //获取所有子节点和节点里的值
                    System.out.println("标签"+e2.getName()+"内容"+e2.getText());
                }
            }

        } catch (DocumentException e) {
            throw new RuntimeException(e);
        }

    }

标签:05telnet,Java,Socket,System,len,new,os,节点,String
From: https://blog.csdn.net/m0_72407563/article/details/142419128

相关文章

  • JAVA网络编程【基于TCP和UDP协议】超详细!!!
    ip地址:唯一标识主机的地址端口号:用于标识计算机上某个特定的网络程序InetAddress类方法说明InetAddressInetAddress.getLocalHost()静态方法,获取本机InetAddress对象(主机名+ip地址)InetAddressInetAddress.getByName("主机名")根据主机名或者域名获取ip地址对象(主机名+ip地址......
  • Java高级06,线程
    多线程进程:1.进程是系统运行程序的基本单位。2.每一个进程都有自己独立的一块内存空间、一组系统资源。3.每一个进程的内部数据和状态都是完全独立的。线程:线程是进程中执行运算的最小单位,可完成一个独立的顺序控制流程。多线程:一个进程中同时运行多个线程来完成不同......
  • TestNG 与 JUnit:哪种 Java 测试框架适合您?
    测试框架是确保软件质量的重要工具,在Java生态系统中,TestNG和JUnit是最流行的两个选项。虽然这两个框架都有一个共同的目标——让测试变得更容易——但它们提供了不同的特性和功能来满足不同的测试需求。在这篇博文中,我们将深入探讨TestNG与JUnit之间的详细比较,帮助您确定......
  • socket
    ServerinternalclassProgram{staticasyncTaskMain(string[]args){varendpoint=newIPEndPoint(IPAddress.Parse("127.0.0.1"),5000);varsocket=newSocket(endpoint.AddressFamily,SocketType.Stream,Protocol......
  • DOM【JavaScript】
    在JavaScript中,DOM(DocumentObjectModel:文档对象模型)是web页面的编程接口,用于表示和操作HTML和XML文档。它将文档结构化为一个树形结构,允许开发者通过JavaScript访问和修改网页的内容、结构和样式。以下是一些关于DOM的关键概念:1.结构DOM树结构是以节点为单位组......
  • 2025基于springboot的网上村委会业务办理系统-JAVA.VUE【源码、论文、开题、实训报告
       博主介绍:......
  • 2025基于springboot的自习室管理和预约系统-JAVA.VUE【源码、论文、开题、实训报告】
       博主介绍:......
  • Java毕设常见创新点汇总
    嗨嗨!这里是泡芙,又是新学期开学,部分学校的毕设也是提上日程了,这段时间不少同学在咨询我的过程中,都无外乎表达了这么几点:1、担心自己的项目太过简单过不了期中检查。2、导师提出了必须要加入创新点等要求,为此焦头烂额。3、自己的题目太大众化,不知道怎么避免查重过高。首先,项......
  • java计算机毕业设计教材征订管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着教育事业的蓬勃发展,高校教材管理面临着前所未有的挑战。传统的手工教材征订方式不仅效率低下,且易出错,难以满足日益增长的师生需求及教学管理的精......
  • java计算机毕业设计明德小学教师档案管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着教育信息化步伐的加快,传统的手工管理方式已难以满足明德小学对教师档案管理的需求。教师档案作为学校重要的人力资源信息库,不仅记录了每位教师的......