我創建了自己的java套接字服務器,該套接字服務器不會執行websocket只是普通的舊套接字。我把每個消息都包含在0x00和0xFF之內。所以每條消息都以0x00開始並以0xFF結束。由於某些原因,當我在短時間內從閃存中讀取消息大小超過3000字節時,我收到的消息或消息缺少字符或不完整的消息。這是我在閃光燈中所擁有的。任何指針都將不勝感激。用於java套接字服務器的Flex客戶機
private function onData(event:ProgressEvent):void
{
var obj:String;
while(_serviceSocket.bytesAvailable > 0)
{
if(_serviceSocket.readByte() == START_FRAME || _currentBuffer == null)
{
_currentBuffer = new ByteArray();
}
var byte:int;
while(true)
{
try
{
byte = _serviceSocket.readByte();
if(byte == END_FRAME){
obj = _currentBuffer.toString();
processMessage(obj);
_currentBuffer = null;
break;
}else{
_currentBuffer.writeByte(byte);
}
}catch(e:Error){
obj = _currentBuffer.toString();
processMessage(obj);
_currentBuffer = null;
break;
}
}
}
}
可以粘貼錯誤? – NINCOMPOOP
沒有錯誤,但是當我查看收到的字節時,它們不是按順序排列的,導致消息丟失字符或部分。這隻發生在生產環境中,我不能在我的盒子中複製。 – user2289259