private void StopReceiver() { TCPMessageReceiver r = Interlocked.Exchange(ref this.m_Receiver, null); if (r != null) { r.Dispose(); } }
private void StartClient(IPEndPoint remoteEP) { if (m_Client != null) { Trace.WriteLine("Attempt to start a TCPClient when a client is already running.", this.GetType().ToString()); return; //throw (new ApplicationException("Attempt to start a TCPClient when a client is already running.")); } m_Client = new TCPClient(remoteEP, this.m_Model.Participant, this.m_Model.Network, Guid.Empty); m_Client.Changed["Connected"].Add(new PropertyEventHandler(HandleClientConnectedChanged)); //Start sender only after we are connected. m_Client.Start(); m_Receiver = new TCPMessageReceiver(m_Client, this.m_Model, this.m_Classroom); }
private void StartServer(InstructorModel instructor) { if (m_Server != null) { Trace.WriteLine("Attempt to start a TCPServer when a server is already running.", this.GetType().ToString()); return; //throw (new ApplicationException("Attempt to start a TCPServer when a server is already running.")); } m_Server = new TCPServer(this.m_Model, this.m_Classroom, instructor); m_Sender = new TCPMessageSender(m_Server, this.m_Model, this.m_Classroom); m_Server.Start(m_Sender); m_Receiver = new TCPMessageReceiver(m_Server, this.m_Model, this.m_Classroom); using (Synchronizer.Lock(this.SyncRoot)) this.SetPublishedProperty("ServerStarted", ref m_ServerStarted, true); }
public MessageProcessingQueue(TCPMessageReceiver receiver) { this.m_Receiver = receiver; }
private void StartClient() { if (m_Client != null) { Trace.WriteLine("Attempt to start a TCPClient when a client is already running.", this.GetType().ToString()); return; //throw (new ApplicationException("Attempt to start a TCPClient when a client is already running.")); } m_Client = new TCPClient(m_InstructorAdvertisement.Endpoint, this.m_Model.Participant, this.m_Model.Network, m_InstructorAdvertisement.InstructorID); m_Client.Changed["Connected"].Add(new PropertyEventHandler(HandleClientConnectedChanged)); //Start sender only after we are connected. m_Client.Start(); m_Receiver = new TCPMessageReceiver(m_Client, this.m_Model, this.m_Classroom); }