IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> JAVA--网络编程 -> 正文阅读

[网络协议]JAVA--网络编程

目录

1、计算机网络

2、网络编程的三要素

3、端口:

4、常见协议:

TCP协议:Transmission Control Protocol 传输控制协议

UDP协议:User Datagram Protocol 用户数据报协议

IP协议:Internet Protocol Address 互联网协议地址/网际协议地址

5、InetAddress类


1、计算机网络

为实现资源共享和信息传递,通过通信线路连接起来的若干主机(Host)。

2、网络编程的三要素

IP地址、端口、协议

3、端口:

在通信实体上进行网络通讯的程序的唯一标识。

网络的通信,本质上是两个应用程序的通信。每台计算机都有很多应用程序,那么在通信时,如何区分这些应用程序呢?如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的应用程序,也就是应用程序的标识。

端口分类:

  • 公认端口:0~1023

  • 注册端口:1024~49151

  • 动态或私有端口:49152~65535

常用端口:

  • MySql:3306

  • Oracle:1521

  • Tomcat:8080

  • SMTP:25

  • Web服务器:80

  • FTP服务器:21

4、常见协议:

通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样,在计算机网络中,这些连接和通信的规则被称为通信网络协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换,常见的协议有UDP协议和TCP协议。

TCP协议:Transmission Control Protocol 传输控制协议

是一种面向连接的、可靠的、基于字节流的传输层通信协议。数据大小无限制。在传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要三次握手,断开连接的过程需要四次挥手。

三次握手:

TCP协议中,在发送数据的准备阶段,客户端与服务器之前的三次交互,以保证连接的可靠。

第一次握手,客户端向服务器发出连接请求,等待服务器确认。

第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。

第三次握手,客户端再次向服务器端发送确认信息,确认连接。

完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面向连接的特性,TCP协议可以保证传输数据的安全,所以应用十分广泛。例如:上传文件、下载文件、浏览网页等。

UDP协议:User Datagram Protocol 用户数据报协议

是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,每个包的大小64KB。

发送数据的步骤:

1、创建发送端的Socket对象(DatagramSocket)

2、创建数据,并把数据打包

3、调用DatagramSocket对象的方法发送数据

4、关闭发送端

IP协议:Internet Protocol Address 互联网协议地址/网际协议地址

分配给互联网设备的数字标签(唯一标识)

IP地址:要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号,也就是设备的标识。

IP地址版本:

IPV4:4字节32位整数,并分成4段8位的二进制数,每8位之间用圆点隔开,每8位整数可以转换为一个0~255的十进制整数。

格式:D.D.D.D 例如:255.255.255.255

IPV6:16字节128位整数,并分成8段十六进制数,每16位之间用圆点隔开,每16位整数可以转换为一个0~65535的十进制数。

格式:X.X.X.X.X.X.X.X 例如:FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF

IP地址分类:

A类:政府机构,1.0.0.1 ~ 126.255.255.254

B类:中型企业,128.0.0.1 ~ 191.255.255.254

C类:个人用户,192.0.0.1 ~ 223.255.255.254

D类:用于组播,224.0.0.1 ~ 239.255.255.254

E类:用于实验,240.0.0.1 ~ 255.255.255.254

回环地址:127.0.0.1,指本机,一般用于测试使用。

注:查看IP命令:ipconfig;测试IP命令:ping D.D.D.D

5、InetAddress类

概念:表示互联网协议(IP)地址对象,封装了与该IP地址相关的所有信息,并提供获取信息的常用方法。

常见方法:

方法名描述
public static InetAddress getLocalHost()获得本地主机地址对象
public static InetAddress getByName(String host)根据主机名称获得地址对象
public static InetAddress[] getAllByName(String host)获得所有相关地址对象
public String getHostAddress()获取IP地址字符串
public String getHostName()获得IP地址主机名
    public static void main(String[] args) throws Exception{
		//1创建本机IP地址对象
		//1.1getLocalhost()方法
		InetAddress ia1=InetAddress.getLocalHost();
		System.out.println("ip地址:"+ia1.getHostAddress()+" 主机名:"+ia1.getHostName());
		//1.2getByName("ip地址");
		InetAddress ia2=InetAddress.getByName("192.168.0.103");
		System.out.println("ip地址:"+ia2.getHostAddress()+" 主机名:"+ia2.getHostName());
		//1.3getByName("127.0.0.1");
		InetAddress ia3=InetAddress.getByName("127.0.0.1");
		System.out.println("ip地址:"+ia3.getHostAddress()+" 主机名:"+ia3.getHostName());
		//1.4getByName("localhost");
		InetAddress ia4=InetAddress.getByName("localhost");
		System.out.println("ip地址:"+ia4.getHostAddress()+" 主机名:"+ia4.getHostName());
		
		//2创建局域网IP地址对象
		
		InetAddress ia5=InetAddress.getByName("192.168.0.104");
		System.out.println("ip地址:"+ia5.getHostAddress()+" 主机名:"+ia5.getHostName());
		System.out.println("2秒钟是否可达:"+ia5.isReachable(2000));
		
		//3创建外网IP地址对象
		InetAddress ia6=InetAddress.getByName("www.baidu.com");
		System.out.println("ip地址:"+ia6.getHostAddress()+" 主机名:"+ia6.getHostName());
		System.out.println("2秒钟是否可达:"+ia6.isReachable(2000));
		System.out.println("--------------");
		InetAddress[] ias=InetAddress.getAllByName("www.baidu.com");
		for (InetAddress inetAddress : ias) {
			System.out.println(inetAddress.getHostAddress());
		}
	}

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:30:35  更:2022-04-01 00:31:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:44:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码