/// <summary> /// 执行相应命令 /// </summary> /// <param name="cmd"></param> /// <returns></returns> private bool ExcuteCmd(PacketSt packet) { bool ret = KcpQueue.ExcuteCmd(packet); //处理完后,重置数据包 Packet.Init(); return(ret); }
/// <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); }