基础
- TCP协议
- IP协议
- TCP/IP
- UDP协议
- 端口
- 套接字
- Java.net包
InetAddress类
任何一台运行的Internet上的主机都有IP地址和当地的DNS能够解析的域名
在Java.net包中就提供了IP地址的封装类InetAddress,InetAdress类用于描述和包装一个Internet IP地址,并提供了相关的常见的方法
TCP的网络编程
- Socket
- 重要的Socket API
- 服务器端程序设计
- 客户端程序设计
UDP通信概念
UDP通信又称数据包通信,UDP协议采用的是基于数据包的网络通信。数据包是一种分组交换的形式,就是把所有要传送的数据分段打包,再传出去,他是无连接型的,是把打成的每个包都作为独立的报文传出去,所以叫做数据包。
在java的UDP网络程序中,主要用到两个类,java.net.DatagramSocket和java.net.DatagramPacket类,前者是发送和接收数据的数据包套接字,后者是UDP所传输的数据包,即打包后的数据。
-
TCP协议
TCP (transmission Control protocol) 即传输控制协议,它是传输层协议,主要负责数据得分组和重组,TCP协议是一种可靠的数据传输协议,它是面向连接的,它可以保证数据的传送时间,顺序,和内容的正确无误。但是在保证数据高效的同时,它的传输速度往往是比较慢的,需要大量的网络开销。它的特点如下:
(1) 面向连接的通信。
(2) 端到端的通信。
(3)高可靠,确保传输数据的正确性,不出现丢失和乱序。
(4)全双工方式传输(全双工是指在发送数据的同时,也在接收数据)
(5)采用字节流方式,即以字节流为单位传输字节序列
(6)紧急数据传输功能 -
IP协议
IP(Internet Protocol)(网络之间的传输协议)简称网协,也就是计算机网络相互连接进行通信而设计的协议
IP 是每个计算机在网络中的唯一标识
IP地址是一个32位的(IPV4)或者128位的(IPV6)的无符号数字 -
TCP/IP
即传输控制协议/国际协议,是一个工业化标准的协议集,它是为广域网制作的 -
UDP协议
UDP(User Datagram Protocol)是指用户数据报协议,它和TCP一样都是网络传输层的协议。但是它在传输数据时,既不保证数据能否发送成功,也不保证正确性,,但是它的优点是传输时占用资源少,比较快。 -
端口
端口(Port)是计算机与外界通信交流的窗口,网络上的一台计算机可以执行多个程序,每个程序都是自己的端口,要确定一台电脑上的唯一的程序,用的就是IP地址+端口号。 -
套接字
套接字(Socket)是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端面点,简单来说就是通信双方的一种约定,用套接字中的某个函数来完成通信过程。 -
Java.net包
这个包是用来提供网络协议的,其中包含了各种专门用于开发网络应用程序的类,使用这个类可以简单地建立TCP可靠连接,以及UDP不可靠连接 -
Socket
通过TCP进行通信的双方通常称为服务器端(Sever)和客户端(Client),服务器端和客户端可以在一台设备上,也可以在不同设备上。
根据连接启动的方式及本地套接字要连接的目标,套接字之间的连接过程可以分为3个步骤:服务期监听,客户端监听,实时监控网络状态
(1)服务器监听:是指服务器端套接字,并不定位提供客户端套接字,而是处于等待连接的状态,实时监控网络状态。
(2)客户端请求:是指由客户端的套接字提供连接请求,要连接的目标是服务器端的套接字。为此客户端的套接字必须首先它要连接的服务器端的套接字,指出服务器端的套接字的地址和端口号,然后向服务器端套接字提供连接请求。
(3)连接确认:是指当客户端套接字监听到或者接收到客户端套接字的连接请求,它就会响应客户端的套接字请求,建立一个新的线程,把服务器端的套接字描述发给客户端,客户端一旦确认此描述,连接就建立好了,而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。 -
重要的Socket API
-
服务器端程序设计
服务器端建立连接一般需要以下5步:
(1)在服务器端程序中,首先创建类java.net.ServerSocket的实例对象,注册在服务器端进行连接的端口及允许连接的最大客户机数量
(2)调用ServerSocket的成员方法accept(),等待并监听来自客户端的连接,当有客户端连接时,accept()方法将返回Socket连接通道在服务器端的套接字,通过套接字与客户端进行数据通信
(3)调用Socket方法的getInputStream()和getOutputStream(),获取该套接字对应的输入流和输出流
(4)通过获取的输入流和输出流与客户端进行数据通信,并处理从客户端获得的数据及需要向客户端发送的数据
(5)在数据传输结束时,关闭输入流和输出流 -
客户端程序设计
客户端建立连接一般需要4步:
(1)在客户端程序中创建类java.netnSocket的实例对象,与服务器建立连接,在实例Socket对象时,需要指定服务器端的主机名和进行连接的端口号
(2)调用客户端套接字的getInoutStream()和getOutoutStream(),获取该套接字对应的输入流和输出流。
(3)通过获取的输入流和输出流与服务器端进行数据通信,并处理从客户端获取的数据及需要向服务器端发送的数据
(4)在数据传输结束时,关闭输入流和输出流。
来源:CSDN
作者:信封―
链接:https://blog.csdn.net/qq_44797749/article/details/103995412