我们在后端使用Netty来处理套接字,而客户端 - 服务器通信只是通过netty通道发送字符串。当我们尝试从服务器向Android应用程序发送长度超过65536字节(在此特定情况下为81188)的字符串时,会发生以下情况:应用程序中的public Func<int> BuildLambda(Func<int> orig) {
return () => {
try {
return orig();
} catch (Exception e) {
if (e.Message == null) throw e;
throw (Exception)Activator.CreateInstance(e.GetType(), e.Messsage.Replace("\n", "");
}
}
}
读取65536字节并确实返回不完整的字符串,之后它会读取BufferedReader.readLine()
并且不再读取输入流。 Python客户端虽然工作正常,但在收到64k数据后,它会继续阅读而没有任何问题。当我尝试在我的笔记本电脑上运行后端时发送相同的数据和家庭wifi上的Android应用程序一切正常并且所有81188字节都得到缓冲并成功读取并且输入流继续工作。
有什么建议可以吗?
阅读代码非常基础:
null