在服务器端,我们使用
Socket server = serverSocket.accept();
创建一个套接字。套接字创建后,我们可以创建一个新线程来处理该套接字的输入/输出流。因此,如果有进一步的连接请求进来,我们可以回到同一个端口监听并创建新的套接字。由于我们已经在特定端口创建了 ServerSocket,当然我们不能在该端口再次创建另一个 ServerSocket。
那么根据我的理解,我是否可以得出结论,在服务器端,我们可以在一个端口下创建多个套接字?(类似于 Web 服务器所做的)
实际上我的问题是,在客户端,当我们创建一个套接字时,我们可以指定我们想要使用的本地端口。在我们在该本地端口成功创建客户端套接字后,我们可以将该端口重用于其他客户端套接字吗?该端口是否永久绑定到套接字,直到套接字关闭(或端口关闭)?既然客户端没有“监听”的概念,我们能不能做和ServerSocket一样的事情(参考ServerSocket可以在一个端口下创建多个socket)?
我对客户端如何处理端口和套接字感到非常困惑,因为我正在将 ServerSocket 与客户端套接字进行比较。
请指出正确的方向,我知道我的想法在某种程度上是错误的。非常感谢。