Java中的网络编程

2021/12/1 22:11:12

本文主要是介绍Java中的网络编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.什么是网络?
概念:在计算机领域中网络是信息传输,接收,共享的虚拟平台,通过它把各个点,面,体的联系到一起,从而实现这些资源的共享。

作用:信息传输,资源共享

优点: 资源共享免费

2.OSI七层参考模型和TCP/IP四层参考模型
OSI七层:
应用层:文件传输,常用协议http,snmp,FTP

表示层:数据格式化,代码转换,数据加密

会话层:建立,解除会话。

传输层:提供端对端的接口。Tcp,udp

网络层:为数据包选择路由,ip,icmp

数据链路层:传输有地址的帧。

物理层:二进制的数据形式在物理媒介上传输数据。

TCP/IP四层:

应用层、传输层、IP层【网际层】、网路接口层【网络连入层】

3.计算机网络四要素
1)ip地址
处于网络中的通信设备(电脑、手机、电视等),都会分配一个ip地址。
这些设备在通信之前,首先要通过通信设备的网卡接入到网络中.
而这个网卡属于一个硬件,并且所有的网卡在出厂的时候,都有一个固定的网卡地址,并且这个网卡地址(MAC地址)全球唯一.
查看网卡地址(MAC地址)

1.在命令提示行窗口中输入 ipconfig /all 可以查询ip(mac地址)相关的详细信息

2.linux操作系统使用ifconfig可以查询ip(mac地址)相关的详细信息

固定的网卡地址((MAC地址))与IP地址的关系

例如: 固定的网卡地址(MAC地址):[00-0C-29-7A-CA-8E]

IP地址:[192.168.1.220]

所有的网卡都有一个唯一的物理地址,但是这个地址非常的不好记,于是给每个网卡又分了一个逻辑(IP)地址。这个逻辑地址就是ip地址。通信的过程中,就可以根据这个逻辑地址找到处于网络中的这台设备。

IP地址也是对处于网络中的某个通信终端的标识。

IP地址与域名的关系

由于IP地址也不容易记忆,,因此又给每个ip绑定了一个名称,这个名称被称为(域名)。

[00-0C-29-7A-CA-8E]----[192.168.1.220]----https://www.baidu.com/[域名]

本机默认的ip地址是127.0.0.1;它有一个对应的默认的域名localhost。

2)DNS服务器【域名解析服务器】
域名解析有2种步

第一步:本地解析:

在我们的操作系统中,有一个hosts文件,当输入域名之后,首先会在hosts文件中找有没有当前的域名对应的IP地址,有就会使用这个IP地址。“C:\Windows\System32\drivers\etc\hosts”

第二步:DNS服务器解析

如果第一步解析失败了,会到网络中的DNS服务器上进行解析。DNS服务器中会将全球所有的域名和IP设置在其中。如果DNS服务器解析失败,说明当前的域名有问题的。

3)协议
协议:通过双方通信的时候需要遵守的通讯规则

高级协议:应用协议:http、ftp、https等

底层协议:UDP、TCP

4)端口
我们可以通过ip找到网络中具体那个通讯终端设备。而具体需要访问这个设备中那个资源(软件)信息,这时由于设备中运行确定资源,这个时候必须有唯一的编号(标识),通过这个标识我们可以准确访问到ip地址具体的资源

端口: 是一台设备(电脑、手机、等)上某个应用程序的唯一标识。设备中运行的任何一个软件,只要启动,就肯定会有一个唯一的编号与整个软件绑定。

端口的范围065535之间。01024之间的数字已经给操作系统的应用程序所占用,这是后期需要的程序必须大于1024。

4.InetAdress类
Java.net包类InetAddress此类表示换联网协议(IP)地址

public class InetAddress implements java.io.Serializable

InetAddress类的构造方法:

缺省修饰符 InetAdderss(){}

我们在自己的java程序中不能通过new+构造方法创建InetAdreass来创建对象。

我们就需要使用下面两个静态方法得到InetAddress类对象

static InetAdress getLocalHost()返回包含主机IP地址的InetAddress对象。

static InetAdress getByName(String host)根据域名得到包含该域名对应的ip地址的InetAdress对象。

实例方法:

String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。

String getHostName() 获取此 IP 地址的主机名。

例子:

import java.net.InetAddress;
import java.net.UnknownHostException;
 
public class InetAddressTest {
 
	public static void main(String[] args) throws UnknownHostException {
		// 获取本地ip
		InetAddress lochost = InetAddress.getLocalHost();
		String ipstr = lochost.getHostAddress();
		String ipname = lochost.getHostName();
		System.out.println("ip地址:" + ipstr);
		System.out.println("ip名字:" + ipname );
		
		//通过域名获取网络ip
		String host = "www.people.com.cn";
	 	InetAddress addobj = InetAddress.getByName(host);
	 	String ip = addobj.getHostAddress();
	 	String hostname = addobj.getHostName();
	 	System.out.println("服务器ip:" + ip);
	 	System.out.println("服务器域名:"+ hostname);
	}
}

5.URL与RUI的区别?
1)URI: 统一资源标识符
表示的是web上每一种可用的资源。

URI通常有三部分组成:

(1)资源的命名机制

(2)存放资源的主机名

(3)资源自身的名称

2)URL是URI的一个子集。统一资源定位符。
采用URL可以用一种传统的格式来面试各种信息资源,包括文件服务器地址和目录登。

URL是URI概念的一种实现。

URL通常由三部分组成:

第一部分是协议(服务方式)
第二部分是村友该资源的主机IP地址(有事包括端口号)
第三部分是主机资源的具体地址,如目录文件名等等。
每个部分的分割符

第一部分和第二部分用“



这篇关于Java中的网络编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程