TCP通信的概述
概述
TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务器(Server)。
两端通信时步骤:
1.服务端程序,需要事先启动,等待客户端的连接。
2.客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。
在Java中,提供了两个类用于实现TCP通信程序:
1. 客户端:java.net.Socket类表示。创建Socket对象,向服务端发出连接请求,服务端响应请求,两者建立连接开始通信。
2.服务端:java.net.ServerSocket类表示。创建ServerSocket对象,相当于开启一个服务,并等待客户端的连接。
TCP通信:面向连接的通信,客户端和服务器端必须的经过3次握手,建立逻辑连接,才能通信(安全)
通信的步骤:
服务器端先启动
服务器端不会主动的请求客户端
必须使用客户端请求服务器端
客户端和服务端就会建立一个逻辑连接
而这个连接中包含一个对象
这个对象就是IO对象
客户端和服务器端就可以使用
IO对象进行通信
通信的数据不仅仅是字符
所以IO对象是字节流对象
服务器端需明确两件事情:
1.多个客户端同时和服务器进行交互,服务器必须明确和哪个客户端进行的交互在服务器端
有一个方法,叫accept客户端获取到请求的客户端对象
2.多个客户端同时和服务器进行交互,就需要使用多个IO流对象
服务器是没有IO流的,服务器可以获取到请求的客户端对象Socket
使用每个客户端Socket中提供的IO流和客户端进行交互
服务器使用客户端的字节输入流读取客户端发送的数据
服务器使用客户端的字节输出流给客户端回写数据(服务器使用客户端的流和客户端交互)