private void SendUIData(object state) { try { var userData = state as byte[]; var dest = this.GetDest(); for (int n = 0; n < _sendTimes; n++) { var outPkg = new OutgoingPackage(dest, userData); _nodeComm.Send(outPkg); // 发送间隔 if (_sendExitEvent.WaitOne(_sendInterval, false)) { break; } } } catch (System.Exception /*ex*/) { } finally { _sendThread = null; } }
public override void SendUserData(OutgoingPackage package) { // 更新发送序号 var seq = (ushort)this.Context.SeqNoManager.GetAndUpdateSendSeq(); // 计算用户数据在发送队列中的排队时延。 package.QueuingDelay = (UInt32)((DateTime.Now - package.CreationTime).TotalMilliseconds / 10); // 计算发送方时间戳 var currentTime = TripleTimestamp.CurrentTimestamp; var senderTimeStamp = currentTime; if (currentTime > (package.ExtraDelay + package.QueuingDelay)) { senderTimeStamp = currentTime - package.ExtraDelay - package.QueuingDelay; } var dtFrame = new SaiTtsFrameAppData(seq, senderTimeStamp, this.TTS.RemoteLastSendTimestamp, this.TTS.LocalLastRecvTimeStamp, package.UserData); this.Context.NextLayer.SendUserData(dtFrame.GetBytes()); }
public override void SendUserData(OutgoingPackage package) { var ecValue = this.DefenseStrategy.GetLocalEcValue(); var seqNo = (ushort)this.Context.SeqNoManager.GetAndUpdateSendSeq(); var frame = new SaiEcFrameApplication(seqNo, ecValue, package.UserData); var bytes = frame.GetBytes(); this.Context.NextLayer.SendUserData(bytes); }
/// <summary> /// 构造函数。 /// </summary> /// <param name="pkg">收到的Package。</param> public UserDataOutgoingEventArgs(OutgoingPackage pkg) { this.Package = pkg; }
public override void SendUserData(OutgoingPackage package) { // Do nothing. }
private void SendCustomFile() { FileStream fs = null; BinaryReader br = null; Byte[] userData = null; var dest = this.GetDest(); try { // Create the reader for data. fs = new FileStream(_fileNameToSend, FileMode.Open, FileAccess.Read); br = new BinaryReader(fs); for (int n = 0; n < _sendTimes; n++) { try { // 发送文件起始标志与扩展名 if (_fileBeginFlagEnabled) { userData = RsspEncoding.ToNetString(CustomFile.StartFlag + Path.GetExtension(_fileNameToSend)); var outPkg = new OutgoingPackage(dest, userData); _nodeComm.Send(outPkg); } // Read and send data fs.Position = 0; do { userData = br.ReadBytes(_packetSize); var outPkg = new OutgoingPackage(dest, userData); _nodeComm.Send(outPkg); // 如果文件发送完成,则立即结束 if (userData.Length < _packetSize) { break; } // 发送间隔 if (_sendExitEvent.WaitOne(_sendInterval, false)) { break; } } while (fs.Length != fs.Position); } finally { userData = RsspEncoding.ToNetString(CustomFile.EndFlag); // 发送文件传送结束标志 if (_fileBeginFlagEnabled) { var outPkg = new OutgoingPackage(dest, userData); _nodeComm.Send(outPkg); } } } } catch (Exception /*ex*/) { } finally { if (fs != null) { fs.Close(); } _sendThread = null; } }
public override void SendUserData(OutgoingPackage package) { }
public abstract void SendUserData(OutgoingPackage package);
public override void SendUserData(OutgoingPackage package) { LogUtility.Error(string.Format("{0}: {1}.{2} not implement!", this.Context.RsspEP.ID, this.GetType().Name, new StackFrame(0).GetMethod().Name.Split('.').Last())); }
public void SendUserData(OutgoingPackage package) { _currentState.SendUserData(package); }