public virtual bool Start(IPEndPoint destinationEp, int nPacketTimeTx, int nPacketTimeRx) { if (IsActive == true) { return(false); } if (IsBound == false) { throw new Exception("You first must bind the local socket by calling Bind()"); } Reset(); DestinationEndpoint = destinationEp; PTimeReceive = nPacketTimeRx; PTimeTransmit = nPacketTimeTx; if (UseInternalTimersForPacketPushPull == true) { SendTimer = SocketServer.QuickTimerControllerCPU.CreateTimer(PTimeTransmit, new SocketServer.DelegateTimerFired(OnTimeToPushPacket), "", null); ExpectPacketTimer = SocketServer.QuickTimerControllerCPU.CreateTimer(PTimeReceive, new SocketServer.DelegateTimerFired(OnTimeToForwardPacket), "", null); } // byte[] test = new byte[100]; // RTPUDPClient.SendUDP(test, test.Length, new IPEndPoint(IPAddress.Parse("172.16.41.174"), 4507)); IsActive = true; RTPUDPClient.StartReceiving(); return(true); }
public void Stop() { lock (TimerLock) { if (SendTimer != null) { SendTimer.Cancel(); SendTimer = null; } } }
/// <summary> /// Start our timer to push/pull traffic /// </summary> public void Start() { lock (TimerLock) { if (SendTimer != null) { SendTimer.Cancel(); SendTimer = null; } } SendTimer = SocketServer.QuickTimerControllerCPU.CreateTimer(20, new SocketServer.DelegateTimerFired(OnTimeToPushPacket), "", null); }
public virtual void StopSending() { if (IsActive == false) { return; } IsActive = false; IsBound = false; if (SendTimer != null) { SendTimer.Cancel(); SendTimer = null; } if (ExpectPacketTimer != null) { ExpectPacketTimer.Cancel(); ExpectPacketTimer = null; } RTPUDPClient.StopReceiving(); RTPUDPClient.OnReceiveMessage -= new UDPSocketClient.DelegateReceivePacket(RTPUDPClient_OnReceiveMessage); RTPUDPClient = null; }
public void OnTimeToPushPacket(IMediaTimer timer) { DoPushPull(new TimeSpan(0, 0, 0, 0, 20)); }
/// Time to decode the next packet and add the audio to our outgoing audio buffer /// void OnTimeToForwardPacket(IMediaTimer timer) { PushNextPacket(); }
void OnTimeToPushPacket(IMediaTimer timer) { SendNextPacket(); }