【发布时间】:2016-11-21 11:43:56
【问题描述】:
我正在编写以下 Java 程序来在 Windows 中打开一个端口。据我所知,每当我们打开端口时,防火墙都应该请求允许访问的权限。但在这里没有暗示它正在打开。背后的原因是什么。
我的代码
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();
}
}
【问题讨论】:
-
你确定防火墙关心你是否打开端口?它不应该拦截所有到端口的连接请求吗?
-
你的代码会抛出异常吗?如果没有,你可以和另一端通信,那么没有问题。
-
@ThomasStets 当我们安装像 ApacheTomcat 这样的服务器时,防火墙会弹出并询问允许访问的权限。这就是我认为当我们编写一个程序来打开/创建一个端口时它应该弹出的原因。
-
一旦您给予许可,它就不会再询问。与java 无关,也与计算机编程无关。离题。
标签: windows-firewall