use of ninjaFS.Rpc.Handler in project jop by jop-devel.
the class Server method request.
public void request(Packet receivedPacket, int offset) {
StringBuffer receiveBuffer = new StringBuffer(receivedPacket.len());
int bufferLength = receivedPacket.getData(offset, receiveBuffer);
String buffer = receiveBuffer.toString();
byte[] receivedData = buffer.getBytes();
Call rpcCall = new Call();
rpcCall.read(receivedData);
Handler handler = Handler.create(rpcCall);
Reply reply = handler.read();
StringBuffer portBuffer = new StringBuffer(22);
receivedPacket.getData(0, portBuffer);
int destinationPort = ((int) portBuffer.charAt(20) << 8) | ((int) portBuffer.charAt(21));
destIp = Ip.Ip(192, 168, 1, 1);
srcIp = Ip.Ip(192, 168, 1, 2);
srcPort = 111;
Dbg.wr(rpcCall.toString() + "\nHandler:" + reply.getData().length + "----");
Dbg.lf();
if (reply != null) {
idx = Udp.OFFSET << 2;
p = PacketPool.getFreshPacket();
p.setLen(reply.getWriteOffset() + idx);
byte[] Data = reply.getData();
for (int i = 0; i < reply.getWriteOffset(); i++) {
System.out.println("[" + i + "]=" + Data[i] + "; ");
p.setByte(Data[i] & 0xFF, idx + i);
}
Udp.send(p, srcIp, destIp, srcPort, destinationPort, true);
}
String data;
try {
data = new String(receivedData, 0, bufferLength);
} catch (Exception e) {
data = "null";
}
if (data.startsWith("exit"))
serverRunning = false;
receivedPacket.free();
}
Aggregations