今日学习内容总结如下:
Java网络编程
计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来的,实现资源共享和数据传输的系统。网络编程就是编写程序使互联网的两个或多个设备(如计算机)之间进行数据传输。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():InputStream 直接获取输入流
不