public void ClientDisposeDisconnectTest() { IPEndPoint ep = new IPEndPoint(IPAddress.Loopback, 4296); bool serverConnected = false; bool serverDisconnected = false; bool clientDisconnected = false; using (ThreadLimitedUdpConnectionListener listener = this.CreateListener(2, new IPEndPoint(IPAddress.Any, 4296), new TestLogger())) using (UdpConnection connection = this.CreateConnection(ep, new TestLogger())) { listener.NewConnection += (evt) => { serverConnected = true; evt.Connection.Disconnected += (o, et) => serverDisconnected = true; }; connection.Disconnected += (o, et) => clientDisconnected = true; listener.Start(); connection.Connect(); Thread.Sleep(100); // Gotta wait for the server to set up the events. connection.Dispose(); Thread.Sleep(100); Assert.IsTrue(serverConnected); Assert.IsTrue(serverDisconnected); Assert.IsFalse(clientDisconnected); } }
private void InitUdp(int port) { if (_udpConnection != null) { _udpConnection.SearchResult -= UdpConnectionSearchResult; _udpConnection.Dispose(); _udpConnection = null; } if (port > 0) { try { _udpConnection = new UdpConnection(port, Settings.NetworkInterface); _udpConnection.SearchResult += UdpConnectionSearchResult; } catch { Logger.Error("Unable to initialize udp port {0}", port); } } }