using System; using System.Collections.Generic; namespace Plane.Communication { /// /// 接收远程主机的 UDP 数据报并创建 实例与其通信。 /// public partial class UdpServerConnectionManager : ExceptionThrownEventSource, IDisposable { private static UdpServerConnectionManager _Instance = new UdpServerConnectionManager(); private Dictionary _connections = new Dictionary(); private bool _disposed; private bool _isReceiving; private bool _shouldReceive; public event EventHandler ConnectionEstablished; public static UdpServerConnectionManager Instance { get { return _Instance; } } public void ClearConnections() { _connections.Clear(); } public void Dispose() { if (_disposed) { return; } StopReceiving(); DisposeCore(); _disposed = true; } private void RaiseConnectionEstablished(IConnection connection, string remoteAddress) { ConnectionEstablished?.Invoke(this, new ConnectionEstablishedEventArgs(connection, remoteAddress)); } } }