//向Network Manager的队列传递内部消息 void PushPacket( ushort msgid, string exception ) { NetPacket packet = new NetPacket(); packet.SetIDOnly( msgid ); packet._error = exception; packet._peer = _socket; _netMgr.AddPacket( packet ); }
//向Network Manager的队列传递NetBitStream对象的数据 void PushPacket2(NetBitStream stream) { NetPacket packet = new NetPacket(); stream.BYTES.CopyTo( packet._bytes, 0 ); packet._peer = stream._socket; _netMgr.AddPacket( packet ); }
//开始读取版本1,从packet对象中读取byte数组 public void BeginRead(NetPacket packet, out uint msgid) { //复制byte数组 packet._bytes.CopyTo( this.BYTES, 0 ); //获得socket this._socket = packet._peer; //初始化体长为0; _bodyLength = 0; //读取消息标识符 this.ReadMsgId( out msgid ); }
//数据包入队 public void AddPacket( NetPacket packet ) { Packets.Enqueue( packet ); }
//开始读取版本2 忽略消息ID public void BeginRead2(NetPacket packet) { packet._bytes.CopyTo( this.BYTES, 0 ); this._socket = packet._peer; _bodyLength = 0; }
// 数据包入队 public void AddPacket(NetPacket packet) { Packets.Enqueue(packet); }
// 处理丢失连接 public virtual void OnLost(NetPacket packet) { }
// 处理客户端取得与服务器连接失败 public virtual void OnConnectFailed(NetPacket packet) { }
// 处理服务器接受客户端的连接 public virtual void OnAccepted(NetPacket packet) { }