我想在同一臺物理機器上運行同一臺服務器的兩個實例。這兩個服務器將偵聽相同的端口,例如12345.我試圖在127.0.0.1上運行一個服務器,而另一個服務器在127.0.0.2上運行。這兩臺服務器基本上都是使用同一個端口發送和接收消息,但在不同的環回地址上運行。我不知道我是否設置了這個測試環境的正確路徑?不知何故,我無法設置這個測試環境。我正在使用java來開發服務器。使用環回測試環境
使用環回測試環境
回答
您可以將兩個服務器綁定到同一端口如果指定了兩種不同的接口:
ServerSocket s1 = new ServerSocket(port, 500, InetAddress.getByName("127.0.0.1"));
ServerSocket s2 = new ServerSocket(port, 500, InetAddress.getByName("127.0.0.2"));
@downvoter你需要在一段時間內測試你有缺陷的假設,並對你的知識的不完整狀態做一些事情。我有一個完全這樣的生產環境。四個Tomcats在127.0.0。{1,2,3,4}上運行,全部使用相同的端口。 – EJP 2013-04-05 09:29:49
所以問題是這兩臺服務器可以在環回時使用相同的端口相互通信嗎?這是我的主要問題。我實際上測試他們,你是對的。我能夠在環回上運行兩臺服務器,但它們無法使用相同的端口進行通信。從127.0.0.1:12345發送到127.0.0.2:12345。這沒有奏效。 – celik 2013-04-05 12:24:25
@celik當然,如果他們使用正確的IP:端口連接到對方,他們當然可以。我不明白最後一部分。 127.0.0.1是一個* listen *端口,並且指示一個監聽套接字。你不能隨身攜帶任何東西。你爲什麼想要? – EJP 2013-04-05 18:22:18
這正是我的NanoHTTPD叉意爲:
https://github.com/gitgrimbo/nanohttpd/commit/9535d1b6b4c1bbc927d390327018882d84df959f
Added ability to specify hostname to bind to.
For example:
java NanoHTTPD -d wwwroot1 -h 127.0.0.1
java NanoHTTPD -d wwwroot2 -h 127.0.0.2
java NanoHTTPD -d wwwroot3 -h 127.0.0.3
And hosts file:
127.0.0.1 www1.example.com
127.0.0.2 www2.example.com
127.0.0.3 www3.example.com
具體線路225(在上面提交鏈接):
myServerSocket.bind(new InetSocketAddress(hostname, port));
此代碼,結合我上面的說明顯示瞭如何在幾個環回地址上運行服務器,所有這些都使用相同的端口(默認爲80,但可以是任何 你的選擇)。
- 1. Django測試環境
- 2. LDAP測試環境
- 3. navision測試環境
- 4. QuickBooks測試環境
- 5. VoIP測試環境
- 6. 指示測試環境的彈簧測試環境屬性
- 7. 使用php cli創建測試環境
- 8. 使用Mocked REST API的測試環境
- 9. 對Rails的測試環境
- 10. Windows Ce 6.0測試環境?
- 11. 測試虛擬環境(virtualenv)
- 12. 構建測試Citrix環境
- 13. 沙盒/測試環境?
- 14. Microsoft Graph的測試環境
- 15. ADFS&Shibboleth Sp測試環境
- 16. PHP/SQL測試環境
- 17. 設置Web測試環境
- 18. 一致的測試環境
- 19. 環境URL的測試
- 20. 使用Meteor.js檢測環境?
- 21. 測試環境 - 使用回形針的錯誤
- 22. App Store測試人員使用實際的測試環境?
- 23. 僅在測試環境中使用Rake測試失敗
- 24. 區分Websphere Commerce中的生產環境,臨時環境和測試環境
- 25. 用笑話測試兩個環境
- 26. 亞馬遜應用測試環境
- 27. 用於測試的替代Perl環境
- 28. Memcached在測試環境中禁用?
- 29. Magento的測試環境不受重定向到生活環境
- 30. HttpPostedFileBase null在生產環境中,但沒有測試環境
我不認爲你將能夠在兩臺服務器綁定到同一端口。你爲什麼想這樣做? – lmsteffan 2013-04-04 22:59:36
我需要這種機制來測試環境。否則,我需要每次嘗試時將程序上傳到物理機器。這將花費很多時間。有一種稱爲回送的機制。我不知道它是否允許多個環回地址使用相同的端口。 – celik 2013-04-04 23:40:05
@lmsteffan並非如此,請參閱我的答案。 – EJP 2013-04-05 01:06:31