我们有一个正在通过套接字与Flash客户端通信的应用程序。消息采用XML格式,并且不能太长,最多1000个字符。
更新后,客户端未正确接收到消息-末尾缺少一个字节。第一条消息正确,第二条消息的末尾缺少该字节,并且由于解析错误,Flash停止了。
该应用程序在生产环境中的Linux上运行,但是我能够在Windows的开发环境中复制该错误。
通信使用两个类:
<a href="http://pastebin.com/3dd2Jzsq">WrappedInputStream</a>
和
<a href="http://pastebin.com/hwVwNe4A">WrappedOutputStream</a>
我可以修改Java源代码,但是不能修改Flash客户端。
Java更新后,还有其他人遇到过类似的问题吗?有办法解决吗?
最佳答案
我会在使用ByteArrayInputStream和ByteArrayOutputStream和/或PipedInputStream + PipedOutputStream的地方编写一些单元测试,并尝试模拟问题。
也就是说,如果这确实是Java问题,那么您应该能够编写一个自包含的测试,该测试会失败(基于您看到的Flash失败的结果)