繁体   English   中英

java server将printstream发送到端口80或443

[英]java server send printstream to port 80 or 443

我有一个文件传输小程序,我现在正在创建一个日志系统,所以在初始化的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();
        }
    }
}

你真的不应该考虑使用端口80和443 - 这些是RECEIVING连接的端口。 在其中一个端口上获取连接后,请求实际上会重定向到另一个端口进行处理。 因此,使用它们进行写入将阻止任何传入的通信。

它现在正在使用,我正在使用端口5000,但我需要为端口5000打开防火墙,因为打开端口是危险的,我可以只使用端口80或443(HTTPS)吗? 怎么做?

打开端口5000并不比打开端口80或443更加危险。(更改端口并不比修改数字困难,并且没有更多效果)。

如果您的服务器正在运行其他重要的应用程序,我会使用5000端口并配置chrooted环境。

你可以查看这个帖子: 防御路径遍历攻击的最佳方法是什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM