2012-11-26 208 views
2

編輯:這個問題是由我的項目組中的其他人寫的。它的措辭不是很好,或者信息豐富,所以如果你偶然發現了一些事故,請告訴我是否需要澄清。IP地址將不會連接到相同的IP地址

服務器通過消息向客戶端發送IP地址。然後,我們的客戶端讀取消息並通過閱讀來顯示IP地址。我有它收集正確的數字,但回到發送的IP地址時不連接。任何想法爲什麼它不會連接到相同的地址?代碼如下:

byte IPAddr[] = Arrays.copyOfRange(message, 3, 7); //and that is equal to "0.0.0.1" 

try {  
    InetAddress IP = InetAddress.getByAddress(IPAddr);  
    Socket clientSocket = new Socket(IP, returnPort);  
    System.out.println("Connected!");  
} 
+0

然而,當「本地主機」或127.0.0.1被輸入到IP位置的客戶端和服務器將連接clientSocket = new Socket(IP,returnPort) – Ryanman

回答

2

服務器有多個IP地址。爲此,其提供給客戶端的地址必須是其外部IP地址。一個不起作用的例子是回送地址127.0.0.1,即使從服務器的角度來看它是一個正確的IP。

+0

非常感謝您的回答!不幸的是,這是我們的服務器的一個問題,以及它的循環是如何在給定問題集的情況下構建的 例如,你絕對正確的是外部地址是必須提供的。在我們的例子中,我們的服務器返回了一個字節數組,其IP地址的第一個字節設爲零,無論如何 - 我們的本地環路測試顯示IP爲0.0.0.1。 一旦我們修復了我們的條件循環,結果是我們擁有了一切。如果有人有類似的問題,需要更多的澄清,隨時回覆。 再次感謝@Jack。 – Ryanman