[英]Flex client for java socket server
我創建了自己的Java套接字服務器,該服務器不只是普通的舊套接字執行websocket。 我把每個消息都包裝在0x00和0xFF內。 因此,每條消息均以0x00開頭,以0xFF結尾。 由於某種原因,當消息大小超過3000字節時,我不時從閃存中讀取消息時,會出現消息混亂或消息缺少字符或消息不完整的情況。 這就是我的想法。 任何對此的指針將不勝感激。
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;
}
}
}
}
請嘗試以下代碼並檢查輸出
function onData(event:ProgressEvent):void{
var data:String = "";
var stream:ByteArray = new ByteArray();
socket.writeBytes(stream, 0, 0);
while(socket.bytesAvailable){
data += socket.readUTFBytes(1);
}
trace("data "+ data);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.