public bool Connect(IPEndPoint SendingEndPoint, IPEndPoint ReceivingEndPoint) { if (ReceivingClosed) { return(false); } if (udpSendingClient != null) { Disconnect(); } try { this.SendingEndPoint = SendingEndPoint; udpSendingClient = new UdpClient(); this.ReceivingEndPoint = ReceivingEndPoint; udpReceivingClient = new UdpClient(ReceivingEndPoint); } catch (Exception) { return(false); } if (ReceivingActive) { ResumeReceiving.Set(); } else { ReceivingActive = true; ReceivingThread.Start(); } return(true); }
public void Close() { ReceivingActive = false; Disconnect(); if (ReceivingThread.IsAlive) { try { ReceivingThread.Join(); } catch (Exception) { } } ReceivingClosed = true; }
public void Disconnect() { if (udpSendingClient != null) { try { UdpClient udpClient = udpSendingClient; udpSendingClient = null; udpClient.Close(); } catch (Exception) { } } if (udpReceivingClient != null) { try { UdpClient udpClient = udpReceivingClient; udpReceivingClient = null; udpClient.Close(); } catch (Exception) { } } try { ReceivingThread.Interrupt(); } catch (Exception) { } }