void _RecvReLink(CKey NetKey_, _TPeersNetIt itPeerNet_, _TPeersExtIt itPeerExt_, CStream Stream_) { var Proto = new SReLinkSc(); Stream_.Pop(Proto); _PeersWillExpire.Remove(itPeerExt_.Data.itPeerWillExpire); itPeerExt_.Data.itPeerWillExpire = _PeersWillExpire.End(); TProtoSeq MustDeleteCnt = (Proto.ServerProtoSeqMustRecv - itPeerExt_.Data.ProtoSeqFirstForSendProtos); // 0 이상의 값이 나와야 함.(조작에의해 음수(큰 양수)가 나오더라도 상관없음 for (var it = itPeerExt_.Data.SendProtos.Begin(); it;) { if (MustDeleteCnt == 0) { break; } var itCheck = it; it.MoveNext(); itCheck.Data.Clear(); itPeerExt_.Data.SendProtos.Remove(itCheck); --MustDeleteCnt; } itPeerExt_.Data.ProtoSeqFirstForSendProtos = Proto.ServerProtoSeqMustRecv; foreach (var i in itPeerExt_.Data.SendProtos) { _Net.Send(NetKey_, new SHeaderCs(EProtoCs.ReSend), i); } _LinkFuncSoft(itPeerExt_.Data.Key, itPeerExt_.Data.NamePort); }
public void Set(SReLinkSc Obj_) { ServerProtoSeqMustRecv = Obj_.ServerProtoSeqMustRecv; }
public SReLinkSc(SReLinkSc Obj_) { ServerProtoSeqMustRecv = Obj_.ServerProtoSeqMustRecv; }