什么是套接字绑定以及如何绑定地址?

新手上路,请多包涵

在 Java 中,我需要知道什么是绑定操作:

 ServerSocket.bind()

来自 Javadoc:

将 ServerSocket 绑定到特定地址(IP 地址和端口号)。

我知道什么是绑定和 EJB(来自示例)的名称。这是相似的吗?

如何将本地地址绑定到服务器套接字?

我在用:

 providerSocket.bind(new InetSocketAddress("192.168.0.1", 0));

我得到了 Already Bound 错误!

原文由 Muhammad Hewedy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 352
2 个回答

连接需要客户端和服务器。

对于客户端向服务器发送数据,客户端必须有服务器的地址和端口号。同样,服务器要向客户端发送数据,服务器必须有客户端的地址和端口号。

绑定套接字意味着为套接字分配地址和端口号。

当你这样做时:

 providerSocket.bind(new InetSocketAddress("192.168.0.1", 0));

你得到 Already Bound 错误,因为 providerSocket 已经有地址和端口号,并且不允许分配新的地址/端口号。一旦创建了 ServerSocket,它就会被绑定(除非它使用无参数构造函数 java.net.ServerSocket.ServerSocket() )。

原文由 Pacerier 发布,翻译遵循 CC BY-SA 4.0 许可协议

你必须离开 ServerSocket() 空白而不是 ServerSocket(666,9) 你不应该做第二个例子,否则它不会工作。在 ServerSocket 的括号内,您什么都不输入。

原文由 pratham12 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题