这半年来一直在搞AS3的socket,包含同C++和Java之间的通信,在这里,公开一下,个人的研究成果:
两个类:ChatPacket.as 和 ChatDataHandler 是我聊天的自定义的包。
其中主要难点还是在于封包和解包的过程,封包就不用说了,关键是解包:
socket接受的数据不是按照你服务端发送时候,完整的过来,有时候会先接受一部分,推进socket里面,然后在过一会儿继续推进,所以需要进行一个完整的解包处理。
首先是包定义
/**
* mark:short = 0x4235
* size:short
* chanel:byte;
* data:String
* end:short = 0x5324
* @author chzcb
* @email chzcb2008@gmail.com
*
*/
public class ChatPacket implements IPacket
{
private var _mark:int = 0x4235;
private var _size:int;
private var _channel:int;
private var _content:ByteArray;
private var _end:int = 0x5324;
private var _bytes:ByteArray;
//一下略过1000字,呵呵
}</