2011-05-22 215 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的括號內,你什麼都不輸入。