我有以下代码从套接字读取数据。
byte[] data = new byte[dataLength];
if(dataLength > 2000000)FileManager.writeToLogFile(this.getClass(), "GetIncomingMessages", LogMessageType.DEBUG, "XXXXYYYY => 2 length: " + dataLength);
for(int i = 0 ; i < dataLength ; i++){
byte[] temp = new byte[1];
in.read(temp);
data[i] = temp[0];
}
if(dataLength > 2000000)FileManager.writeToLogFile(this.getClass(), "GetIncomingMessages", LogMessageType.DEBUG, "XXXXYYYY => 3 length: " + dataLength);
这段代码运行良好,直到我得到一个大小约为 3MB(准确地说是 3227056 字节)的包。收到此数据包时,不会发生异常,我的程序也不会崩溃,但代码永远不会超过该点。基本上,您在上面看到的最后一个日志条目没有生成。
这可能是什么原因?我怎么能至少弄清楚错误是什么?(错误不会在任何 try-catch 块中捕获)。然而,在这一点之外还有其他接收发生。