我收到了一项任务,我必须在Java中实现RADIUS服务器以识别连接客户端。根据{{3}},数据包具有代码字段,id,长度等等。第一个八位字节是代码字段,显示数据包是Access-Request,Accept-Rejected还是其他任何东西。
当客户端使用UDP中的PAP连接到我的服务器时,字符串中的数据包格式等于é .Åxv—”ÜÁö8ÙúJô´user1šåë×çk^!ú)
如何识别数据包中的代码,ID和其他属性,以便在我的服务器中接受或拒绝该请求?
我的服务器代码:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class Server {
public static void main(String args[]) {
Server server = new Server();
server.runServer();
}
public void runServer() {
DatagramSocket serverSocket = null;
try {
serverSocket = new DatagramSocket(1815);
byte[] buffer = new byte[10000];
while(true) {
DatagramPacket recievePacket = new DatagramPacket(buffer, buffer.length);
serverSocket.receive(recievePacket);
String messageArr = new String(buffer, 0, recievePacket.getLength());
System.out.println(messageArr);
}
}catch(Exception e) {
System.out.println("Error: "+e.getMessage());
}
if(serverSocket != null) {
serverSocket.close();{
}
}
}
}
在cmd中运行客户端: java -cp radiusclient.jar ... packet.Main“host”“UDP port”“SharedSecret”