GMs*_*soF 5 java sockets port tcp serversocket
在服务器端,我们使用
Socket server = serverSocket.accept();
Run Code Online (Sandbox Code Playgroud)
创建一个套接字。创建套接字后,我们可以创建一个新线程来处理该套接字的输入/输出流。因此,如果有进一步的连接请求进来,我们可以返回在同一端口上侦听并创建新套接字。由于我们已经在特定端口创建了 ServerSocket,当然我们不能再次在该端口创建另一个 ServerSocket。
所以根据我的理解,我可以得出结论,在服务器端,我们可以在一个端口下创建多个套接字吗?(类似于 Web 服务器的功能)
实际上我的问题是,在客户端,当我们创建套接字时,我们可以指定要使用的本地端口。在我们在该本地端口成功创建客户端套接字后,我们可以将该端口重用于其他客户端套接字吗?该端口是否永久绑定到套接字直到套接字关闭(或端口关闭)?既然客户端没有“侦听”的概念,那么我们是否可以做与ServerSocket一样的事情(参考ServerSocket可以在一个端口下创建多个套接字)?
我很困惑客户端如何处理端口和套接字,因为我将 ServerSocket 与客户端套接字进行比较。
请指点我正确的方向,我知道我的想法不知何故是错误的。非常感谢。
那么根据我的理解,我是否可以得出结论,在服务器端,我们可以在一个端口下创建多个套接字?(类似于Web服务器的作用)
你对你的术语感到困惑。ServerSocket.accept() 接受连接,并将端点包装在Socket. ServerSocket根据RFC 793 的定义,端点具有与 相同的本地端口号,因此包装也是如此Socket。
实际上我的问题是,在客户端,当我们创建套接字时,我们可以指定我们想要使用的本地端口。
我们可以,但我们很少这样做。
在该本地端口成功创建客户端套接字后,我们可以将该端口重用于其他客户端套接字吗?
不。
该端口是否永久绑定到套接字,直到套接字关闭(或端口关闭)?
是的,或者相反:套接字绑定到端口。
既然客户端没有“监听”的概念,我们是否可以做像ServerSocket一样的事情(参考ServerSocket可以在一个端口下创建多个套接字)?
不。
| 归档时间: |
|
| 查看次数: |
3898 次 |
| 最近记录: |