避免在本地主机上使用套接字时出现Windows防火墙弹窗

13

我编写了一个简单的Java应用程序,使用套接字与其多个实例进行交互。第一个实例会自动扮演服务器的角色,监听特定端口,而所有后续实例都会连接到它。

我面临的问题是Windows防火墙会弹出窗口询问我是否要解除“接受传入的网络连接”的程序阻止。问题在于:即使您让该应用程序保持阻止状态,因为应用程序的实例始终在同一台计算机上运行,所以它仍将正常工作。

我是否可以在某种程度上告知Windows,我甚至不想接受传入的网络连接?


请澄清一下,您想让Windows防火墙自动阻止所有入站网络请求吗? - Caladain
1
我希望套接字仅在本地主机上进行侦听,而不是针对传入的网络流量。换句话说,我不希望Windows防火墙首先显示任何弹出窗口。 - Paul Lammertsma
1个回答

13
使用ServerSocket类的三个参数构造函数,指定IP地址以及服务器应监听的内容。这样,您可以将服务器限制为仅在127.0.0.1上监听,而不是默认的0.0.0.0。有关详细信息,请参见此相关Stack Overflow问题
最好使用InetAddress.getByName(null)来获取本地地址。

2
太好了,这个可行!我之前尝试使用最后一个参数为InetAddress.getLocalHost()的构造函数,但显然那是本地主机的网络地址。将其替换为InetAddress.getByName(null)可以避免防火墙弹出窗口。 - Paul Lammertsma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接