防火墙不要求打开端口的权限
Firewall Not asking Permission to open the port
我正在编写以下 java 程序以在 Windows 中打开一个端口。据我所知,每当我们打开端口时,防火墙都应该请求允许访问的权限。但这里没有任何迹象表明它正在开放。背后的原因是什么。
MyCode
import java.net.*;
import java.io.*;
class Server
{
public static void main(String[] args) throws Exception
{
if(args.length!=1)
{
System.out.println("Enter the Port Number");
return;
}
int portNumber = Integer.parseInt(args[0]);
ServerSocket ss = new ServerSocket(portNumber);
while(true)
{
Socket socket = ss.accept();
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
String message = (String)ois.readObject();
System.out.println("Client: "+message);
if(message.equals("exit")) break;
ois.close();
}
ss.close();
}
}
Windows 防火墙会提示用户 "allow an application" 每当它看到程序打开没有关联规则的侦听套接字端口时。 (即新程序)。但是当用户在确认对话框中点击 "allow" 时,它是针对整个程序的,而不仅仅是一个端口。一旦给出确认,它通常不会再次提示用户。
在Java的情况下,运行程序是Java.exe。因此,一旦用户单击 "allow" 到第一个程序 运行 Java,所有后续的 Java 程序都会在没有提示的情况下启用。我还怀疑 Java 安装程序也只是为自己设置了防火墙规则。我好像有几个:
换句话说,您已经 Java 注册了,因此不会再收到提示。
我正在编写以下 java 程序以在 Windows 中打开一个端口。据我所知,每当我们打开端口时,防火墙都应该请求允许访问的权限。但这里没有任何迹象表明它正在开放。背后的原因是什么。
MyCode
import java.net.*;
import java.io.*;
class Server
{
public static void main(String[] args) throws Exception
{
if(args.length!=1)
{
System.out.println("Enter the Port Number");
return;
}
int portNumber = Integer.parseInt(args[0]);
ServerSocket ss = new ServerSocket(portNumber);
while(true)
{
Socket socket = ss.accept();
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
String message = (String)ois.readObject();
System.out.println("Client: "+message);
if(message.equals("exit")) break;
ois.close();
}
ss.close();
}
}
Windows 防火墙会提示用户 "allow an application" 每当它看到程序打开没有关联规则的侦听套接字端口时。 (即新程序)。但是当用户在确认对话框中点击 "allow" 时,它是针对整个程序的,而不仅仅是一个端口。一旦给出确认,它通常不会再次提示用户。
在Java的情况下,运行程序是Java.exe。因此,一旦用户单击 "allow" 到第一个程序 运行 Java,所有后续的 Java 程序都会在没有提示的情况下启用。我还怀疑 Java 安装程序也只是为自己设置了防火墙规则。我好像有几个:
换句话说,您已经 Java 注册了,因此不会再收到提示。