慕斯卡6586063
2020-03-19 10:55
server没问题,一旦运行client就报错
老师的代码没有问题,有相同错误的自己纠正。查看
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;
}这部分代码是否有误。祝大家秋招顺利~
看下RemoteInvoke.invoke是否有返回数据,就是在最后一步的时候不要return null;
因为老师的代码实现有bug
RandomTransportSelector#select 方法实现错误,是取不应该是删除;
可以直接clone我的代码,可以直接运行出RPC效果
https://github.com/WuTong111/RPC.git
解决了吗 ,同样这个问题
自己动手实现RPC框架
14718 学习 · 27 问题
相似问题