【发布时间】:2020-05-21 13:56:39
【问题描述】:
当我尝试使用稍微修改过的 Minecraft 客户端连接到 Minecraft 服务器时出现此错误,该客户端是从这里用 Java 从头开始制作的: 原版 Minecraft 客户端 Java 代码:Java sending handshake packets to minecraft server 我对上面代码的修改版本:https://pastebin.com/FmsBzKnm 错误来自这里的某个地方......
socket.close();
Socket socket2 = new Socket();
while (!socket2.isConnected()) {
socket2.connect(host, 4000);
Thread.sleep(500);
}
DataOutputStream out2 = new DataOutputStream(socket2.getOutputStream());
DataInputStream in2 = new DataInputStream(socket2.getInputStream());
int packetId2 = getHandshakeAndReturn(version, address, port, 2, out2, in2);
byte[] test = new byte[readVarInt(in2)];
in2.readFully(test);
System.out.println(new String(test));
当我运行它时,我得到了这个错误:
Internal Exception: io.netty.handler.codec.DecoderException:
java.lang.IndexOutOfBoundsException:
readerIndex(1) + length(1) exceeds writerIndex(1):
PooledUnsafeDirectByteBuf(ridx: 1, widx: 1, cap: 1)
注意:此错误来自我连接的服务器,而不是我的代码本身。服务器因上述错误断开我的连接。
【问题讨论】:
-
请发布带有完整堆栈跟踪的完整异常。您的代码中的哪一行抛出了它?
-
错误来自服务器...