Java复习网络通信

1.网络编程入门

1.1 网络编程概述【理解】

计算机网络
	是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,
	在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
网络编程
	在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换

1.2 网络编程三要素【理解】

IP地址
	要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,
	通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号。也就是设备的标识
端口
	网络的通信,本质上是两个应用程序的通信。每台计算机都有很多的应用程序,
	那么在网络通信时,如何区分这些应用程序呢?
	如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的应用程序了。也就是应用程序的标识
协议
	通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。
	在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。常见的协议有UDP协议和TCP协议

1.3 IP地址【理解】

IP地址:是网络中设备的唯一标识
IP地址分为两大类
IPv4:是给每个连接在网络上的主机分配一个32bit地址。按照TCP/IP规定,IP地址用二进制来表示,每个IP地址长32bit,也就是4个字节。例如一个采用二进制形式的IP地址是“11000000 10101000
	00000001 01000010”,这么长的地址,处理起来也太费劲了。为了方便使用,IP地址经常被写成十进制	的形式,中间使用符号“.”分隔不同的字节。于是,上面的IP地址可以表示为“192.168.1.66”。
	IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆得多
IPv6:由于互联网的蓬勃发展,IP地址的需求量愈来愈大,但是网络地址资源有限,使得IP的分配越发紧张。为了扩大地址空间,通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,这样就解决了网络地址资源数量不够的问题
DOS常用命令:
	ipconfig:查看本机IP地址
	ping IP地址:检查网络是否连通
特殊IP地址:
	127.0.0.1:是回送地址,可以代表本机地址,一般用来测试使用

1.4InetAddress【应用】

InetAddress:此类表示Internet协议(IP)地址

在这里插入图片描述

1.5端口和协议【理解】

端口
	设备上应用程序的唯一标识
端口号
	用两个字节表示的整数,它的取值范围是0~65535。其中,0~1023之间的端口号用于一些知名的网络服务和应用,普通的应用程序需要使用1024以上的端口号。
	如果端口号被另外一个服务或应用所占用,会导致当前程序启动失败
协议
	计算机网络中,连接和通信的规则被称为网络通信协议
UDP协议
	用户数据报协议(User Datagram Protocol)
	UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。
	简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。
由于使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输
例如视频会议通常采用UDP协议,因为这种情况即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
但是在使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在	传输重要数据时不建议使用UDP协议
TCP协议
	传输控制协议 (Transmission Control Protocol)
	TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。
	在TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”
三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠
第一次握手,客户端向服务器端发出连接请求,等待服务器确认
第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求
第三次握手,客户端再次向服务器端发送确认信息,确认连接
完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。
由于这种面向连接的特性,TCP协议可以保证传输数据的安全,所以应用十分广泛。例如上传文件、下载文件、浏览网页等

2.UDP通信程序

2.1 UDP发送数据【应用】

Java中的UDP通信
	UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送,接收数据的对象,因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念
	Java提供了DatagramSocket类作为基于UDP协议的Socket

在这里插入图片描述
在这里插入图片描述

发送数据的步骤
	创建发送端的Socket对象(DatagramSocket)
	创建数据,并把数据打包
	调用DatagramSocket对象的方法发送数据
	关闭发送端

2.2UDP接收数据【应用】

接收数据的步骤
	创建接收端的Socket对象(DatagramSocket)
	创建一个数据包,用于接收数据
	调用DatagramSocket对象的方法接收数据
	解析数据包,并把数据在控制台显示
	关闭接收端

在这里插入图片描述

3.TCP通信程序

3.1TCP发送数据【应用】

Java中的TCP通信
	Java对基于TCP协议的的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过
	Socket产生IO流来进行网络通信。
	Java为客户端提供了Socket类,为服务器端提供了ServerSocket类

在这里插入图片描述
相关方法
在这里插入图片描述

3.2TCP接收数据【应用】

概述

public class ServerSocket extends Object implements Closeable
这个类实现了服务器套接字。 服务器套接字等待通过网络进入的请求。 它根据该请求执行一些操作,然后可能将结果返回给请求者。 
服务器套接字的实际工作由SocketImpl类的实例执行。 应用程序可以更改创建套接字实现的套接字工厂,以配置自己创建适合本地防火墙的套接字。 

常用方法:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值