所以我正在用 Java 制作一个简单的客户端-服务器应用程序。我认为,尽可能简单,并且我正在尝试实现一个 blacklist.txt,它具有多个 IP 地址,如果那里的任何 IP 与尝试连接到套接字的 IP 匹配,这些 IP 地址将被拒绝连接。我对此有点陌生,但这就是我得到的:
ServerSocket server = new ServerSocket(6500);
System.out.println ("Server Started on port 6500");
while (true){//Waiting clients
Socket socket = null;
BufferedReader reader = new BufferedReader(new FileReader("C:\\UNIV\\Redes\\workspace\\Copy of Ex_4.3_Teste\\lists\\blacklist.txt"));
String line = null;
socket = server.accept();
while ((line = reader.readLine()) != null) {
if (line == socket.getInetAddress().toString()) {
System.out.println("IP Blacklisted: " + socket.getInetAddress().toString());
socket.close(); //Refusing connection
}
System.out.println("Line: " + line); //Just checking if reading OK
System.out.println("Socket: " + socket.getInetAddress().toString()); //Just checking if reading OK
}
System.out.println("New connection..");
Thread t = new Thread(new EchoClientThread(socket));
t.start();
}
}
然后我为每个连接的客户端启动一个线程,但我认为这与我的要求无关。
整个想法是如果 IP 地址等于 blacklist.txt 的任何行,则拒绝连接
我显然在这里有问题,因为它不起作用,有人可以指出我正确的方向吗?
非常感激。
编辑:忘记了 blacklist.txt 的内容:
/192.168.2.200
/127.0.0.1
我将斜杠放在 IP 之前,因为我注意到输出socket.getInetAddress().toString()
是/IP.IP.IP.IP