这个问题在这里已有答案:
我在Socket tutorial中阅读了以下声明 .
如果一切顺利,服务器将接受连接 . 接受后,服务器获取绑定到同一本地端口的新套接字,并将其远程 endpoints 设置为客户端的地址和端口 . 它需要一个新的套接字,以便它可以继续监听原始套接字以获得连接请求,同时满足连接客户端的需求 .
以下是我的问题:
-
请从上面纠正我的理解 - 我通过指定一个端口打开一个套接字(
ServerSocket
),比方说8001,现在我的服务器将开始侦听此端口上的请求,现在它收到来自客户端的请求,如http://abc:8001/test
,所以一旦它接受连接,它将创建一个本地端口,让我们说10001,所以现在这个客户端请求将被接受超过10001(或者换句话说,与客户端的连接将通过端口10001 Build ),而8001将再次免费并且正在监听新的要求? -
那么,这是否意味着我用
ServerSocket
指定的原始端口永远不会用于 Build 连接? -
那么,这是否意味着,如果我与客户端 Build 连接,请说通过端口9001,那么在同一个9001端口上永远不会再发生一次通信(或者换句话说 Build 连接),直到我原来的请求为止餐饮完成了吗?
请随时详细了解这些问题的概念,这不仅有助于我,也有助于未来的访客 .
1 回答
是 .
没有 .
没有 .
(或者换句话说,与客户的连接将通过端口10001 Build )
没有 .
是 .
没有 .
没有 .
接受的套接字使用与listienng套接字相同的本地端口,与您引用的文本完全相同 .
根据您的磁贴,您根据问题的主体使用新端口混淆了新的套接字 .