一、网络通信基本概念
1、IP
在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都分配了一个专门的地址,称为IP地址。
- 32 位数字,四个用点号分隔的数字
- 包括网络 ID 和主机 ID
- 网络的类包括 A、B、C、D、E 类
InetAddress 的实例包含 IP 地址,还可能包含相应的主机名。
构造方法用于创建实例:
InetAddress getLocalHost()
InetAddress getByName(String host)
InetAddress[] getAllByName(String host)
public static void main(String[] args) throws UnknownHostException {
//当前主机的IP地址和名称
InetAddress localHost = InetAddress.getLocalHost();
System.out.println(localHost);
//确定主机名称的IP地址
InetAddress name = InetAddress.getByName("127.0.0.1");
System.out.println(name);
//返回当前主机的全部IP地址
InetAddress[] allByName = InetAddress.getAllByName("127.0.0.1");
for (InetAddress inetAddress : allByName) {
System.out.println(inetAddress);
}
}
2、协议
协议是一组在网络上发送信息的规则和约定。这些规则控制在网络设备间交换消息的内容、格式、定时、顺序和错误控制。
3、DNS域名系统
ip地址都是数字,太难记。DNS将 IP 地址映射至字符串;映射由域名服务器系统维护
4、端口
有别于设备端口,是用来理解的逻辑概念
用于实现程序间的通信
二、java网络支持
URL
URL指向Internet 上的资源文件
统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址
URL 类提供 API 来访问 Internet 上的信息
URL 的组件
构造方法
URL(String urlname)
URL(String protocol, String hostname, int port, String path)
URL(String protocol, String hostname, String path)
URLConenction openConnection()
public static void main(String[] args) throws IOException {
//创建统一资源定位符
URL url=new URL("https://www.baidu.com");//http 不加密
System.out.println(url);
//获取连接对象
URLConnection connection = url.openConnection();
//创建输入流读取
InputStream in = connection.getInputStream();
//创建缓冲流读取
BufferedReader br=new BufferedReader(new InputStreamReader(in));
String str=null;
while ((str=b