我有一个文件传输小程序,我现在正在创建一个日志记录系统,因此在初始化的applet中,直到它发送文件并完成将开始打印一个日志文件(最初它转到java控制台上客户端)但现在我正在修改它,所以它将转到服务器(在服务器中创建一个文件并开始写入文件)。
现在正在使用,我正在使用端口5000,但我需要为端口5000打开防火墙,因为打开端口是危险的,我可以只使用端口80或443(HTTPS),因为它无论如何都要打开文件传输?怎么做?
目前代码的示例是
在java applet中会有
handler = new SocketHandler("xxx.xxx.xxx.xx", 5000);
//on different area of the file there will be something like
log("starting the applet");
log("sending email");
...
在服务器上我创建一个像这样的简单java服务器
public class ThreadedEchoServer {
// using port 5000
static final int PORT = 5000;
public static void main(String args[]) {
ServerSocket serverSocket = null;
Socket socket = null;
try {
serverSocket = new ServerSocket(PORT);
} catch (IOException e) {
e.printStackTrace();
}
while (true) {
try {
socket = serverSocket.accept();
} catch (IOException e) {
System.out.println("I/O error: " + e);
}
// new thread for a client
new EchoThread(socket).start();
}
}
}
答案 0 :(得分:1)
你真的不应该考虑使用端口80和443 - 这些是RECEIVING连接的端口。在其中一个端口上获取连接后,请求实际上会重定向到另一个端口进行处理。因此,使用它们进行写入将阻止任何传入的通信。
答案 1 :(得分:1)
现在正在使用,我正在使用端口5000,但我需要打开防火墙 对于端口5000,因为开放端口是危险的,我可以只使用端口80 还是443(HTTPS)?怎么做?
打开端口5000并不比打开端口80或443更加危险。(更改端口并不比修改数字困难,并且没有更多效果)。
答案 2 :(得分:0)
如果你的服务器正在运行其他重要的应用程序,我会使用5000端口并配置一个chrooted环境。
您可以查看此主题:What's the best way to defend against a path traversal attack?