文章目录
一些基础知识
-
IP地址:用于唯一的标识网络中的一个通信实体,这个通信实体可以是一台主机,一个打印机或者路由器的某一个端口。在基于IP协议网络中传输的数据包,都必须使用IP地址来进行标识。
-
IPv4地址(32位,4字节):IPv4协议使用的32位地址。
互联网上的很多资源都是通过IP地址来进行表示的,第一版的IP地址,指的就是IPv4地址。
IP协议规定每台主机分配一个32位2进制数作为该主机的网际协议地址,称为IP地址或Internet地址。IPv4地址是分配给主机并用于该主机进行所有通信活动的一个唯一的32位2进制地址
如:192.168.0.0
-
IPv6地址(128位,16字节)
随着互联网资源越来越多,原有的地址已经无法表示这么多资源了
为了解决IPv4地址耗尽的问题,IPv6应运而生。
-
-
主机名(hostname)/域名
因为IP地址的可读性非常差,于是就诞生了主机名和域名
如:www.sun.com
-
端口号:每个通信实体可以有多个通信程序同时提供服务,而端口就是每个程序在设备上的唯一标识
传输数据的时候除了确定发到哪台机器上,还要明确发到哪个程序。
1~1041:保留端口,我们自己的程序尽量使用1041 以上的端口
-
服务类型:
http、ftp、smtp、telnet
举个例子:
某个人所在地址(某某街道,某某小区) —— IP地址
门牌号 —— 端口号
某个人 —— 应用程序
计算机网络 —— 货物调度公司
该小区住了很多人,每个人对应不同的门牌号,有外卖员、邮递员、快递员等。假设有个人需要将某个货物通过货物调度公司给该小区的快递员,只要有正确的地址和门牌号,公司就可以成功交付货物。
同理:
当一个程序需要发送数据时,需要指定目的地的IP地址和端口,如果IP地址和端口号正确,计算机网络就可以将该数据给该IP地址和端口所对应的应用程序。
通过Java的URL对象来访问网络资源
URL:
统一资源定位符(Uniform Resource Locator,URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。 【 —360百科】
URL可以由协议名、主机、端口和资源组成:
格式:
protocol://host:port/resourceName
例:
https://www.sohu.com/index.php
- InputStream openStream()—打开到此 URL 的连接并返回一个读取该URL资源的 InputStream
- URLConnection openConnection() — 返回一个URLConnection对象,它代表了与URL所引用的远程对象的连接。
- String getProtocol()—获取此 URL的协议名称
- String getFile()— 获取此 URL 的资源名
- String getHost()—获取此URL的主机名
- String getContent()—获取此 URL 的内容。
其他方法参考API
通过URL读取www信息
通过URL抓取“https://www.sohu.com/”的内容,当然抓出的只是搜狐网首页的html,代码如下:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
public class URLReader {
public static void main(String[] args) throws Exception {
URL url = new URL("https://www.sohu.com/");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String s;
while ((s=in.readLine())!=null){
System.out.println(s);
}
in.close();
}
}
运行结果: