所以我阅读并且显然网络将数据包分成更小的块或其他东西并单独发送它们但java不知道应该接收的字节总大小是多少。我在数据包中添加了一个bytesize前缀,因此它知道要读多少
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++;
}
我试着玩阅读,到目前为止,这是我的工作。
我想我记得一个字节只能包含和最多255个int。我想我应该发送一个unsigned short而不是那些大字符串?
我的主要问题是:对于flash actionscript 3来说是一回事吗? 如果是这样,我该如何实现类似的东西?
我的想法是在socketData的处理程序中,读取缓冲区大小,然后将所有数据保存到类的bytearray缓冲区中。如果缓冲区的大小是接收的大小,则运行读取方法。所以一般来说,每次调用socketData处理程序时都在java端的while循环中运行代码。
谢谢!