Socket 建立连接的过程
服务器端首先创建 Socket,调用 bind() 绑定地址与端口,随后调用 listen() 进入监听状态。 客户端创建 Socket,调用 connect() 向服务器发起连接请求,连接成功后可调用 send() 发送数据。 服务器端调用 accept() 接受连接请求,建立新线程处理,并向客户端返回响应。
详细过程
建立 Socket 连接至少需要一对套接字,其中一个运行于客户端,称为 ClientSocket,另一个运行于服务器端,称为 ServerSocket。
套接字之间的连接过程分为三个步骤:服务器监听、客户端请求、连接确认。
服务器监听
服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。
客户端请求
指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。 为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
连接确认
当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。 而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

