3

我们有一个应用程序通过套接字与 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更新后有没有其他人遇到过类似的问题?有没有办法解决它?

4

2 回答 2

2

我会编写一些单元测试,您使用 ByteArrayInputStream 和 ByteArrayOutputStream 和/或 PipedInputStream + PipedOutputStream 并尝试模拟问题。

即,如果这确实是一个 Java 问题,您应该能够编写一个失败的自包含测试(基于您所看到的 flash 失败)

于 2012-04-13T12:33:41.557 回答
0

您可以尝试确保WrappedOutputStream正确关闭。由于这个流的目的是在不关闭父流的情况下发送一些数据,所以开发者可能存在一些误解,所以没有关闭流。

于 2012-04-13T13:37:44.757 回答