对于TCP套接字,在服务器端通常采用下面的语句来实现:
ServerSocket welcomeSocket = new ServerSocket(6789); (1)
Socket connectionSocket = welcomeSocket.accept(); (2)
第(1)句创建了一个能监听某些客户机“敲门”声的门,welcomeSocket在6789端口上监听;当某些客户机与welcomeSocket连接时,第(2)句创建了一个新的套接字,称为connectionSocket,这个套接字也使用6789端口,这时,两个套接字使用了相同的端口号,因为TCP连接套接字由一个四元组(源IP地址,源端口号,目的IP地址,目的端口号)来标识,UDP套接字(面向无连接的)由一个包含目的IP地址和目的端口号组成的二元组来标识。之后,TCP在客户端的clientSocket和服务器端的connectionSocket之间建立了一条直接的虚礼管道,该客户机与服务器可以通过该管道彼此发送字节,并且发送的所有字节将按顺序到达对方。随着connectionSocket的建立,该服务器能继续使用welcomeSocket监听其它客户机的连接请求。