一:基础入门
1.1 软件结构:
C/S结构(客户服务器模式)
B/S结构(浏览器服务器模式)
1.2 网络通信协议:
计算机网络实现计算机连接,有一定的约束条件,这样的规则称之为协议。
TCP/IP协议:
传输控制协议/因特网互联协议定义了计算机如何连入因特网。
四层协议:物理层/数据链路层、网络层、传输层(TCP、UDP)、应用层(HTTP、FTP等)。
1.3协议分类
java.net包中提供两种协议支持:
UDP:无连接通信协议,资源消耗小、效率高,多用于音频、视频。
TCP:传输控制协议,面向连接的通信协议(两台计算机进行数据交互),客户端向服务器发送请求,执行“三次握手”。
第一次握手:客户端向服务器端发出连接请求,等待服务器确认。
第二次握手:服务器向客户端回应,通知客户端已接收请求。
第三次握手:客户端再次向服务端发送确认信息,确认连接。
三次握手完成后,客户端与服务器端可以进行数据传输。
1.4三要素
协议:计算机网络通信规则。
IP地址:互联网协议地址,给网络中的一个电脑做一个编号(IPv4、IPv6)。
端口号:网络的通信,本质上是进程之间的通信。唯一标识进程的编号。保证了两台计算机通过进程准确地进行数据发送。
使用IP地址加端口号保证数据准确发送到目标计算机。
常用端口号: 80端口、数据库端口号 3306 、 Tomcat8080。
二:TCP通信
1.客户服务器端交互
TCP通信实现两台计算机的数据交互。通信两端分为客户端(Client)和服务器端(Server)。
步骤:1.启动服务器端,等待客户端连接。
2.客户端连接服务器端,连接成功后通信。服务端不可以主动连接客户端.
客户端和服务器端连接包含一个对象,就是IO对象(字节流对象)。
(1)客户端和服务器端进行一次数据交互需要4个IO流对象。
(2)服务器使用客户端的流和客户端交互。
实现步骤:
- 1.创建一个客户端对象Socket,构造方法绑定服务器的IP地址和端口号。
2.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象。
3.使用网络字节输出流OutputStream对象中的方法write()给服务器发送数据。
4.使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象。
5.使用网络字节输入流InputStream()对象中的方法read,读取服务器回写的数据。
6.释放资源(Socket)
服务器端实现步骤:
- 1.创建服务器ServerSocket对象,与系统要指定端口号。
2.使用ServerSocket对象中的accept方法,获取请求客户端Socket对象。
3.使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象。
4.使用网络字节输入流InputStream()对象中的方法read,读取客户端发送的数据。
5.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象。
6.使用网络字节输出流OutputStream对象中的方法write()给客户端回写数据。
7.释放资源(ServerSocket)