【发布时间】:2011-01-27 05:21:55
【问题描述】:
根据serverSocket = new ServerSocket(portNumber) 的理解,我们创建了一个对象,它可能“监听”指定的端口。通过clientSocket = serverSocket.accept(),我们强制服务器套接字“监听”其端口并“接受”来自任何试图通过与服务器关联的端口连接到服务器的客户端的连接。当我说“客户端尝试连接到服务器”时,我的意思是客户端程序执行“nameSocket = new Socket(serverIP,serverPort)”。
如果客户端试图连接到服务器,服务器“接受”这个客户端(即创建一个与这个客户端关联的“客户端套接字”)。
如果新客户端尝试连接到服务器,服务器会创建另一个客户端套接字(与新客户端关联)。但是服务器如何知道它是“新”客户端还是已经拥有套接字的“旧”客户端?或者,换句话说,如何识别客户?通过他们的IP?通过他们的IP和端口?通过一些“签名”?
如果“旧”客户端再次尝试使用 Socket(serverIP,serverIP) 会发生什么?服务器会创建与该客户端关联的第二个套接字吗?
【问题讨论】:
标签: networking sockets client-server