Socket(使用TCP实现,点对点)又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求.
Socket(client端)和Serversocket(服务端)类库位于java.net包中。Serversocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是Serversocket它们的工作都是通过Socketlmpl类及其子类完成的。
套接字之间的连接过程可以分为四个步骤:服务器监听,客户端请求服务器,服务器
确认,客户端确认,进行通信。
(1)服务器监听﹔是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的
状态,实时监控网络状态。
(2)客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接
字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就问服务器端套接字提出连接请求。
(3)服务器端连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接
请求,它就响应客户端赛接字的请求,建立一不新的线程,把服务器端套接字的描述发给客户端。(最古老的socket最大的问题是,每次通信建立多个线程,对服务器性能开销特别大)
(4)客户端连接确认:一旦客户端确认了此描述,连接就建立好了。双方开始进通信。而
服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。