2009-12-01 48 views
1

我試圖使用TCP/IP套接字實現閃存應用程序和定製Java服務器之間的二進制協議,該協議的消息是可變長度,所以我的想法是添加一個字段,指示我必須的字節數解析一個完整的消息,這樣的事情之前閱讀:Socket的事件是否在Flash中排隊?

bytesToRead = socket.readInteger(); 
var bf:ByteArray; 
socket.readBytes(bytesToRead); 
parseMessage(bf); 

所以我的問題是:如果在處理消息(supossing它是完整的)其他數據到達通過socket,是ProgressEvent.SOCKET_DATA排隊,以便類型的郵件我的處理程序被調用的次數等於(至少在這種情況下)到達的消息數量,還是應該讀取,直到套接字可用的所有數據爲止?或更簡單:通常是在閃存中排隊的處理程序的消息?

回答

2

每當套接字接收到數據時,都會調度ProgreeEvent.SOCKET_DATA事件。基本上每次你的Java服務器調用socket.write();或者socket.writeln(),你應該在ProgreeEvent.SOCKET_DATA中接收整個消息,除非你當然是發送部分消息。

希望這回答你的問題。