我想在同一台物理机器上运行同一台服务器的两个实例。这两个服务器将侦听相同的端口,例如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