Search in sources :

Example 1 with Call

use of ninjaFS.Rpc.Call 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();
}
Also used : Call(ninjaFS.Rpc.Call) UdpHandler(ejip123.UdpHandler) Handler(ninjaFS.Rpc.Handler) Reply(ninjaFS.Rpc.Reply)

Aggregations

UdpHandler (ejip123.UdpHandler)1 Call (ninjaFS.Rpc.Call)1 Handler (ninjaFS.Rpc.Handler)1 Reply (ninjaFS.Rpc.Reply)1