今日所学:
计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来的, 实现资源共享和数据传输的系统。网络编程就是编写程序使互联网的两个或多个设备(如计算机)之间 进行数据传输。Java语言对网络编程提供了良好的支持。通过其提供的接口我们可以很方便地进行网络 编程。
IP地址相关操作
InetAddress是Java对IP地址的封装。其下有两个子类Inet4Address和Inet6Address。这个类的实例经 常和UDP DatagramSockets和Socket,ServerSocket类一起使用 InetAddress 没有公开的构造方法,因此你必须通过一系列静态方法中的某一个来获取它的实例。
- //www.baidu.com实际上是主机名称
- //IPv4采用的是点分十进制的记法,所以难以记忆,
- //引入DNS可以将一个有含义的字符串和一个IP地址建立对应关系,当使用有含义的字符串时可以通过DNS转
- 换为IP地址
- //InetAddress对象中可以封装一个IP地址和一个主机名
- InetAddress ia = InetAddress.getByName("www.baidu.com"); //获取对应主机名称的IP地
- 址,会自动调用DNS服务
- System.out.println(ia);
- System.out.println();
- InetAddress[] arr=InetAddress.getAllByName("www.baidu.com"); //获取对应主机
- 名称的所有注册IP地址
- for(InetAddress tmp:arr)
- System.out.println(tmp);
- System.out.println();
- // new InetAddress() 没有提供可以直接使用的构造器,所以不能直接new创建对象
- ia=InetAddress.getLocalHost();//获取本地机的IP地址
- System.out.println(ia); //lover/172.30.1.101
- ia=InetAddress.getLoopbackAddress(); //获取回绕地址
- System.out.println(ia); //localhost/127.0.0.1
- System.out.println(ia.getClass()); //class java.net.Inet4Address
- System.out.println();
- //通过IP地址查询对应信息
- InetAddress ia1=InetAddress.getByName("14.215.177.39");
- System.out.println(ia1);
- //用于判断是否可以连接ia对象对应的主机,可以理解为尝试是否能够ping通
- 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():URLConnection 可以获取输入、输出流
url.openStream()