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

时间:2011-05-22 21:26:08

标签: java sockets networking

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

ServerSocket.bind()

来自Javadoc:

  

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

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

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

我正在使用:

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

我得到了Already Bound错误!

2 个答案:

答案 0 :(得分:25)

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

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

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

当你这样做时:

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

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

答案 1 :(得分:-2)

你必须留下ServerSocket()空白而不是ServerSocket(666,9)你不应该做第二个例子,否则它就不会工作。在ServerSocket的括号内,您不需要输入任何内容。