我写了一个简单的
Java应用程序,它使用套接字与自身的多个实例进行交互.第一个实例自动承担服务器的角色,侦听特定端口,所有后续实例都连接到该端口.
我遇到的问题是Windows防火墙弹出询问我是否要从“接受传入网络连接”中解除该程序.事情是:如果您将应用程序阻止,因为应用程序的实例总是在同一台机器上,所以它将始终工作,这并不重要.
我的问题是:我可以通知Windows,我甚至不想接收传入的网络连接?
解决方法
使用ServerSocket类的
three parameter constructor来指定服务器应该监听的IP地址.这样,您可以将服务器限制为仅在127.0.0.1上侦听,与默认值0.0.0.0不同.详见
this related SO question.
编辑:最好使用InetAddress.getByName(null)来获取本地地址.