【Java框架】RMI:底层通信

本篇主要完成服务端,字节流接收与发送,请求解析,响应参数编码。

1.请求解析

public class NetMessage {
    private int action;
    private String param;

    public NetMessage(String request) {
        String[] split = request.split("&&");
        this.action = Integer.parseInt(split[0]);
        this.param = split[1];
    }
}

请求参数事例:方法哈希值&&请求参数字符串

2. 侦听客户端请求

    protected abstract void dealRequest(NetMessage netMessage);
@Override
    public void run() {
        DataInputStream dataInputStream = null;
        try {
            dataInputStream = new DataInputStream(socket.getInputStream());
            dealRequest(new NetMessage(dataInputStream.readUTF()));
        } catch (IOException ignored) {
        }
        close(null,dataInputStream,null);
    }

这里使用了线程,希望能够及时处理客户端消息。首先建立输入流,接收到请求,并解析,交由具体处理器处理。

3.消息响应

protected void response(String message) {
    try {
        DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());
        dataOutputStream.writeUTF(message);
        close(dataOutputStream, null, socket);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

当方法调用结束后,将处理结果以字符串形成回应。完成响应后,就需要关闭通信。

4.资源回收

 public static void close(DataOutputStream dataOutputStream,DataInputStream dataInputStream ,Socket socket) {
        try {
            if (dataOutputStream != null) {
                dataOutputStream.close();
            }
        } catch (IOException ignored) {
        }
        try {
            if (dataInputStream != null) {
                dataInputStream.close();
            }
        } catch (IOException ignored) {
        }
        try {
            if (socket != null) {
                socket.close();
            }
        } catch (IOException ignored) {
        }
    }

RMI
RMI:代理机制
RMI:客户端
RMI:请求处理
RMI:请求映射

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值