0

所以我四处阅读,显然网络将数据包分解成更小的块或其他东西并单独发送它们,但java不知道应该接收的字节的总大小是多少。我在数据包中添加了一个字节大小前缀,这样它就知道要读取多少

while ( inputStream.available() != -1 )
        {
            int packetSize = inputStream.readByte() ;

            if ( packetSize == -1 )
            {
                closeConnection();
            }

            debug( "read bytearray size:" + packetSize );
            ByteArrayOutputStream bout = new ByteArrayOutputStream();
            byte packetBuffer[] = new byte[packetSize];
            int byteTrans = 0;
            while ( byteTrans < packetSize )
            {inputStream.read() );
                inputStream.read( packetBuffer , byteTrans , 1 );
                byteTrans++;
            }

我试着玩读,到目前为止,这就是我开始工作的地方。

我想我记得一个字节最多只能包含和 int 255。我想我应该为那些大字符串发送一个无符号的 short 吗?

我的主要问题是:flash actionscript 3 是否同样如此?如果是这样,我该如何实现类似的东西?

我的想法是在 socketData 的处理程序中,读取缓冲区大小,然后将所有数据保存到类的字节数组缓冲区中。如果缓冲区的大小是接收到的大小,则运行读取方法。所以一般来说,每次调用socketData处理程序时,在java端的while循环中运行代码。

谢谢!

4

0 回答 0