Java网络编程学习笔记01

1. 网络编程入门

1.1 网络编程概述

计算机网络
是指将地理位置不同的具有独立功能的多台计算机机器外部设备,通过通信线路简介起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统

网络编程
在网络上通信协议下,实现网络互连不同计算机上运行的程序可以进行数据交换

1.2 网络编程三要素

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

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

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

1.3 IP地址

IP地址分为两大类
1. IPv4
是给每个连接在网络上的主机分配一个32bit的地址,按照TCP/IP规定,IP地址用二进制表示,每个IP地址长32bit,也就是4个字节,但是这样表示出来的IP地址由于只由0和1组成,太长且不利于记忆,为了方便使用,IP地址经常被写为十进制,如“192.168.1.100”,其中的‘.’用于分割不同的字节,这种表示方法又被叫做“点分十进制表示法”,这显然比0和1容易记忆的多

2. IPv6
由于互联网的蓬勃发展,Ip地址的需求量越来越大,但是网络资源有限,使得IP的分配越发紧张,为了扩大地址空间,通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制,这样就解决了网络资源数量不够的问题

cmd常用命令:

  1. ipconfig:用于查看本机IP地址
  2. ping + (某个IP地址):用于检查本机与该地址的网络是否连通

特殊IP地址:

  1. 127.0.0.1:回送地址,可以代表本机地址,一般用来测试使用

1.4 InetAddress

Java中提供的对于IP地址相关使用的类

常用方法:

方法名说明
static InetAddress getByName(String host)确定主机名称的IP地址。主机名称可以试试机器名称,也可以是IP地址
String getHostName()获取IP地址的主机名
String getHostAddress()返回文本显示中的IP地址字符串

演示代码

package StudyDemo03;
import java.net.*;

public class JavaNetStudy {
	public static void StudyDemo01() throws UnknownHostException {
		InetAddress a = InetAddress.getByName("192.168.1.100");
		String HostName = a.getHostName();
		String HostAdress = a.getHostAddress();
		System.out.println("Name: " + HostName);
		System.out.println("Adress: " + HostAdress);
	}
	public static void main(String[] args) {
		try {
			StudyDemo01();
		} catch (UnknownHostException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
}

1.5 端口

端口号:用两个字节表示的整数,取值范围为0 - 65535,其中0 - 1023之间的端口号用于一些知名的网络服务和应用,普通的应用程序需要使用1024以上的端口号,如果端口号被另外一个服务或应用占用,会导致当前程序启动失败

1.6 协议

UDP协议
用户数据报协议(User DataGram Protocol)
UDP是无连接通讯协议,即在数据传输时,数据的发送和接收端布简历数据连接,简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端不会向发送端反馈是否接收数据
由于UDP协议消耗资源小,通信效率高,所以通常用于音频、视频和普通数据的传输,但由于UDP的面向无连接性,不能确保数据的完整性,因此在传输重要数据时不建议使用UDP协议

TCP协议
传输控制协议(Transmission Control Protocol)
TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,他提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客户端与服务器端,有客户端向服务器端发出连接请求,每次连接的创建都需要经过三次握手

大名鼎鼎的三次握手

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

第一次握手,客户端向服务器端发出连接请求,等待服务器确认
第二次握手,服务器端向客户端回送一个相应,通知客户端收到了连接请求
第三次握手,客户端再次向服务器端发送确认信息,确认连接

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值