在Java运行服务器中重定向客户端

时间:2016-04-05 22:33:31

标签: java http redirect

我正在创建一个Java HTTP服务器,它会检查以确保在重定向到主服务器之前不禁止客户端。我已经为所需的服务器创建了所有内容,我只是不知道如何重定向到另一个运行主服务器的端口。这是我的代码:

package netlyaccesscontrol;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


public class AllowedCheck {
    public static void main(String[] args) {
        String line = null;
        try {
            FileReader reader = new FileReader("Banned.txt");
            BufferedReader buffer = new BufferedReader(reader);
            ServerSocket s = new ServerSocket(80);
            Socket c = s.accept();
            String clientIP = c.getInetAddress().toString();
            while ((line = buffer.readLine()) != null)  {
                if (clientIP == line) {
                    s.close();
                } else {
                    // redirect to main server here
                }
            }
        } catch (FileNotFoundException ex) {
            System.out.println("The banned IP address file does not exist.");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您正在考虑的重定向是HTTP和浏览器支持的。有一个特定的HTTP响应代码,告诉调用者重定向以及指定它的方法。

原始套接字是一种低级网络协议,不会像您期望的那样支持重定向。您可以做的最多就是将此程序作为代理,并在成功时将所有传入的数据/传出响应推送到最终服务器或从最终服务器推送。但你在这里所拥有的绝不是削减它。