2011-05-22 202 views
12

在Java中,我需要知道什么是绑定操作:什么是套接字绑定以及如何绑定地址?

ServerSocket.bind() 

从的Javadoc:

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

我知道什么是绑定和EJB(例如)到一个名称。这是否类似?

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

我使用:

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

而且我得到了Already Bound错误!

回答

22

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

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

绑定套接字是指将地址和端口号分配给套接字。

当你这样做:

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

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

-2

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