Esempio n. 1
0
        /// <summary>
        /// 执行相应命令
        /// </summary>
        /// <param name="cmd"></param>
        /// <returns></returns>
        private bool ExcuteCmd(PacketSt packet)
        {
            bool ret = KcpQueue.ExcuteCmd(packet);

            //处理完后,重置数据包
            Packet.Init();
            return(ret);
        }
Esempio n. 2
0
 /// <summary>
 /// 读取一个完整数据包
 /// </summary>
 /// <param name="sr">数据流</param>
 /// <param name="packet">返回的结果</param>
 /// <returns>是否读取完整包</returns>
 private bool ReadOnePacket(BinaryReader sr, PacketSt packet)
 {
     //会话id->命令->是否分片->接收窗口大小->时间序列->序号->下一个可接收的序列号->数据长度->用户数据
     packet.BeginRead(sr).ReadSessionId().ReadCmd().ReadIsFragment()
     .ReadReceiveBufferSize().ReadTimestamp().ReadSegmentNum()
     .ReadUna().ReadDataLength().ReadData().EndRead();
     return(packet.IsLastSuccessed);
 }