在阅读通过互联网发送的64k字符串后,Android InputStream停止返回

时间:2017-10-25 14:06:10

标签: java android sockets network-programming netty

我们在后端使用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

0 个答案:

没有答案