TCP通信简介
TCP通信同UDP通信一样,都能实现两台计算机之间的通信,通信的两端则都需要创建Socket对象。TCP通信与UDP通信的其中一个主要区别在于,UDP中只有发送端和接收端,不区分客户端与服务器端,计算机之间可以任意地发送数据;而TCP通信是严格区分客户端与服务器端的,在通信时,必须先由客户端去连接服务器端才能实现通信,服务器端不可以主动连接客户端。
在JDK中提供了两个用于实现TCP程序的类,一个是ServerSocket类,用于表示服务器端;另一个是Socket类,用于表示客户端。通信时,首先要创建代表服务器端的ServerSocket对象,该对象相当于开启一个服务,并等待客户端的连接;然后创建代表客户端的Socket对象,并向服务器端发出连接请求,服务器端响应请求,两者建立连接后可以正式进行通信。整个通信过程如图1所示。
图1 Socket和ServerSocket通信
了解了ServerSocket、Socket在服务器端与客户端通信过程中的作用后,接下来针对ServerSocket和Socket进行详细地讲解。