在服务器端,我们使用
Socket server = serverSocket.accept();
创建一个套接字。创建套接字后,我们可以创建一个新线程来处理该套接字的输入/输出流。因此,如果有进一步的连接请求进来,我们可以返回监听同一端口并创建新的套接字。由于我们已经在特定端口创建了 ServerSocket,当然我们不能再次在该端口创建另一个 ServerSocket。
那么根据我的理解,我是否可以得出结论,在服务器端,我们可以在一个端口下创建多个套接字? (类似于Web服务器的作用)
实际上我的问题是,在客户端,当我们创建套接字时,我们可以指定我们想要使用的本地端口。在该本地端口成功创建客户端套接字后,我们可以将该端口重用于其他客户端套接字吗?该端口是否永久绑定到套接字,直到套接字关闭(或端口关闭)?既然客户端没有“监听”的概念,我们是否可以做像ServerSocket一样的事情(参考ServerSocket可以在一个端口下创建多个套接字)?
我很困惑客户端如何处理端口和套接字,因为我正在将 ServerSocket 与客户端套接字进行比较。
请指出我正确的方向,我知道我的想法是错误的。非常感谢。
那么根据我的理解,我是否可以得出结论,在服务器端,我们可以在一个端口下创建多个套接字? (类似于Web服务器的作用)
你对你的术语感到困惑。ServerSocket.accept()
accepts a 联系,并将端点包装在Socket
。端点与本地端口号相同ServerSocket
,根据定义RFC 793,因此包装也是如此Socket
.
实际上我的问题是,在客户端,当我们创建套接字时,我们可以指定我们想要使用的本地端口。
我们可以,但我们很少这样做。
在该本地端口成功创建客户端套接字后,我们可以将该端口重用于其他客户端套接字吗?
No.
该端口是否永久绑定到套接字,直到套接字关闭(或端口关闭)?
是的,或者相反:套接字绑定到端口。
既然客户端没有“监听”的概念,我们是否可以做像ServerSocket一样的事情(参考ServerSocket可以在一个端口下创建多个套接字)?
No.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)