Java初学总结(二十八)

网络编程

一、什么是网络?
网络:信息传输,接收,共享的虚拟平台
作用:信息传输,资源共享
优点: 资源共享免费

二、OSI七层参考模型和TCP/IP四层参考模型

(1) OSI七层参考模型:
在这里插入图片描述
(2)TCP/IP四层参考模型在这里插入图片描述
三、计算机网络四要素
①IP地址:IP是Internet Protocol(网际互连协议)
IP地址也是对处于网络中的某个通信终端的标识。
本机默认的ip地址是127.0.0.1;它有一个对应的默认的域名localhost。

②域名解析:将网络中的每个IP地址的名称(域名)解析成对应的IP地址。
步骤:
(1)本地解析:
在我们的操作系统中,有一个hosts文件,当输入域名之后,首先会在hosts文件中找有没有当前的域名对应的IP地址,有就会使用这个IP地址。
C:\Windows\System32\drivers\etc\hosts
(2)DNS服务器解析:
如果第一步解析失败了,会到网络中的DNS服务器上进行解析。
DNS服务器中会将全球所有的域名和IP设置在其中。
如果DNS服务器解析失败,说明当前的域名有问题的。
在这里插入图片描述
③协议
协议:通信双方通信的时候需要遵守的通信的规则。
在这里插入图片描述
现在我们需要了解2种底层(TCP、UDP)的协议通信协议
(1)TCP:传输控制协议【有连接的协议】
在这里插入图片描述
Tcp的优点:传输数据的时候比较安全,可靠。
Tcp的缺点:消耗大,效率较低。
(2)UDP:用户数据报协议【无连接的协议】
特点:发送一方,不用关心接受一方是否在线,能不能接受到数据,接受的数据正确与否。就直接发送数据。如果对方在就可以接受数据,如果对方不在,这时数据就自动的被丢弃。
UDP优点:消耗小,效率较高。
UDP缺点:协议不安全,不可靠,不能传输大数据。

④端口
端口:是一台设备(电脑、手机登)上某个应用程序的唯一标识。
端口从0开始到65535之间。0到1024之间的端口数字已经分配给本机的操作系统的应用程序占用,因此后期我们书写程序如果需要绑定端口,这时必须大于1024.
端口其实就是进入本台计算时,访问本台计算机所运行程序的入口。
在这里插入图片描述

四、InetAddress类的使用
java.net 类 InetAddress 此类表示互联网协议 (IP) 地址。
定义:public class InetAddress implements java.io.Serializable
构造方法:InetAddress() {}
得到InetAddress类对象:
在这里插入图片描述
实例方法:
在这里插入图片描述

package com.wangxing.test1;
import java.net.InetAddress;
public class TestInetAddress {
	public static void main(String[] args)throws Exception {
		//获取本机的ip地址
		InetAddress  benjiInetAddress=InetAddress.getLocalHost();
		String benjiip=benjiInetAddress.getHostAddress();
		String benjizhujiming=benjiInetAddress.getHostName();
		System.out.println("本机ip=="+benjiip);
		System.out.println("本机的主机名=="+benjizhujiming);
		//通过域名得到其他计算机的ip地址和主机名
		//得到百度的ip地址和主机名
		InetAddress baiduInetAddress=InetAddress.getByName("www.baidu.com");
		//给出域名的时候是没有协议名称的
		//InetAddress baiduInetAddress=InetAddress.getByName("https://www.baidu.com");
		String baiduip=baiduInetAddress.getHostAddress();
		String baiduzhujiming=baiduInetAddress.getHostName();
		System.out.println("百度ip=="+baiduip);
		System.out.println("百度的主机名=="+baiduzhujiming);	
	}
}

在这里插入图片描述

五、URL与URI的区别
URI:通一资源标志符
表示的是web上每一种可用的资源如 HTML文档、图像、视频片段、程序等都由一个URI进行标识的
通常由三部分组成:
①资源的命名机制;
②存放资源的主机名;
③资源自身的名称。
例如:https://www.baidu.com/index.html
URL:统一资源定位符(是URI的一个子集)
URL的格式由三部分组成:
①第一部分是协议(或称为服务方式)。
②第二部分是存有该资源的主机IP地址(有时也包括端口号)。
③第三部分是主机资源的具体地址,如目录和文件名等。
例如:https://www.baidu.com/index.html
Java中的URL类 【访问网络资源】
在这里插入图片描述

package com.wangxing.test1;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;

public class TestURL {

	public static void main(String[] args) throws Exception{
		//https://img14.360buyimg.com/n0/jfs/t1/137893/19/7221/217297/5f4d10a0E675688d0/1e3457aa3a2888bb.jpg
		//URL(String spec) 从 String表示形成一个 URL对象。
		URL url1=new URL("https://img14.360buyimg.com/n0/jfs/t1/137893/19/7221/217297/5f4d10a0E675688d0/1e3457aa3a2888bb.jpg");
		//URL(String protocol, String host, int port, String file) 创建 URL从指定对象 protocol , host , port数,和 file 。 
		//URL url2=new URL("https","img14.360buyimg.com",80,"n0/jfs/t1/137893/19/7221/217297/5f4d10a0E675688d0/1e3457aa3a2888bb.jpg");
		
		//InputStream	openStream() 打开与此 URL ,并返回一个 InputStream ,以便从该连接读取。 
		InputStream in=url1.openStream();
		byte  tempbyte[]=new byte[1024];
		ByteArrayOutputStream  out=new ByteArrayOutputStream();
		int len=0;
		while((len=in.read(tempbyte))!=-1) {
			out.write(tempbyte);
		}
		out.close();
		byte datebyte[]=out.toByteArray();
		FileOutputStream fileout=new FileOutputStream(new File("tupian.jpg"));
		fileout.write(datebyte);
		fileout.close();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值