• Java网络编程


    Java网络编程

    计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来的,实现资源共享和数据传输的系统。网络编程就是编写程序使互联网的两个或多个设备(如计算机)之间进行数据传输。Java语言对网络编程提供了良好的支持。通过其提供的接口我们可以很方便地进行网络编程。

    IP地址相关操作

    InetAddress是Java对IP地址的封装。其下有两个子类Inet4Address和Inet6Address。这个类的实例经常和UDP DatagramSockets和Socket,ServerSocket类一起使用

    InetAddress 没有公开的构造方法,因此你必须通过一系列静态方法中的某一个来获取它的实例。

    1. //www.baidu.com实际上是主机名称
    2. //IPv4采用的是点分十进制的记法,所以难以记忆,
    3. //引入DNS可以将一个有含义的字符串和一个IP地址建立对应关系,当使用有含义的字符串时可以通过DNS转换为IP地址
    4. //InetAddress对象中可以封装一个IP地址和一个主机名
    5. InetAddress ia = InetAddress.getByName("www.baidu.com");  //获取对应主机名称的IP地址,会自动调用DNS服务
    6.         System.out.println(ia);
    7.         System.out.println();
    8.         InetAddress[] arr=InetAddress.getAllByName("www.baidu.com"); //获取对应主机名称的所有注册IP地址
    9.         for(InetAddress tmp:arr)
    10.             System.out.println(tmp);
    11.         System.out.println();
    12.         
    13. //        new InetAddress()  没有提供可以直接使用的构造器,所以不能直接new创建对象
    14. ia=InetAddress.getLocalHost();//获取本地机的IP地址
    15. System.out.println(ia);  //lover/172.30.1.101
    16.         
    17. ia=InetAddress.getLoopbackAddress(); //获取回绕地址
    18. System.out.println(ia);  //localhost/127.0.0.1
    19. System.out.println(ia.getClass());  //class java.net.Inet4Address
    20. System.out.println();
    21.         
    22. //通过IP地址查询对应信息
    23. InetAddress ia1=InetAddress.getByName("14.215.177.39");
    24. System.out.println(ia1);
    25. //用于判断是否可以连接ia对象对应的主机,可以理解为尝试是否能够ping通
    26. System.out.println(ia1.isReachable(2000));

    URL访问网上资源

    URL对象代表统一资源定位器,是指向互联网资源的指针,资源可以是简单的文件或目录,也可以是对复杂对象的引用,例如对数据库或搜索引擎的查询。用协议名、主机、端口和资源组成,即满足格式:protocol://host:port/resourceName,例如http://www.yan.com:80/index.php

    http协议的标准端口为80    https=http+SSL 加密数据传输的http,标准端口为443

    - URL统一资源指针,可以指定一个具体的资源,例如一个html网页
    - URI统一资源标识符,可以认为为了方便记忆,给URL起的别名

    构建URL对象

    // 创建一个URL对象,用于指代网络中的一个资源,如果网址不合法,则抛出MalformedURLException

    URL url = new URL("https://news.cctv.com/2022/09/12/ARTIZ8cD6tXepRSQ5cFIHyA5220912.shtml");

    最重要的方法:

    - url.openConnection()&#

  • 相关阅读:
    深度讲解React Props
    LeetCode刷题(python版)——Topic60排列序列
    面对数据增量同步需求,怎样保障准确性和及时性?
    ECMAScript 6(es6)
    测试用例逻辑梳理
    CGI与FastCGI的区别在哪里,FastCGI的应用场景讲解
    【Java面试】这么回答提升30%的面试通过率,ThreadLocal出现内存泄露吗?
    【滤波器】最小均方(LMS)自适应滤波器
    Python第二次作业(4)【矩形面积与周长】
    LeetCode_栈_困难_227.基本计算器(不含乘除)
  • 原文地址:https://blog.csdn.net/m0_56627229/article/details/126840834