为了账号安全,请及时绑定邮箱和手机立即绑定

client报错是怎么回事?

http://img1.sycdn.imooc.com//5e72dede0001b82b11180241.jpgserver没问题,一旦运行client就报错

正在回答

4 回答

老师的代码没有问题,有相同错误的自己纠正。查看

private Response invokeRemote(Request request) {
    Response resp = null;
    TransportClient client = null;
    try {
        client = selector.select();
        byte[] outBytes  = encoder.encode(request);
        InputStream receive = client.write(new ByteArrayInputStream(outBytes));
        byte[] inBytes = IOUtils.readFully(receive, receive.available());
        resp = decoder.decode(inBytes, Response.class);

    } catch (IOException e) {
        log.warn(e.getMessage(), e);
        resp = new Response();
        resp.setCode(1);
        resp.setMessage("RpcClient got error:"
        + e.getClass()
        + ":" + e.getMessage());

    } finally {
        if(client != null){
            selector.release(client);
        }
    }
    return resp;
}

这部分代码是否有误。祝大家秋招顺利~

0 回复 有任何疑惑可以回复我~

看下RemoteInvoke.invoke是否有返回数据,就是在最后一步的时候不要return null;

0 回复 有任何疑惑可以回复我~

因为老师的代码实现有bug

RandomTransportSelector#select 方法实现错误,是取不应该是删除;

可以直接clone我的代码,可以直接运行出RPC效果

https://github.com/WuTong111/RPC.git

0 回复 有任何疑惑可以回复我~
#1

慕先生1008176

和这个没关系吧,remove 只是移除用来传输的 HTTPTransportClient 吧
2020-05-11 回复 有任何疑惑可以回复我~
#2

慕少0428329

和remove没关系,remove的返回值也是这个对象,remove是为了下一次他在选择连接的时候,不选已经被选过的
2021-08-28 回复 有任何疑惑可以回复我~

解决了吗  ,同样这个问题 

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

client报错是怎么回事?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信