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

2022-09-03 18:30:56

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

ServerSocket.bind()

来自 Javadoc:

将服务器跟踪绑定到特定地址(IP 地址和端口号)。

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

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

我正在使用:

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

我得到了错误!Already Bound


答案 1

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

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

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

当您执行以下操作时:

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

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


答案 2

你必须留空,而不是你不应该做第二个例子,否则它将无法工作。在 ServerSocket 的括号内,您不键入任何内容。ServerSocket()ServerSocket(666,9)


推荐