コード例 #1
0
        private void btn_start_Click(object sender, RoutedEventArgs e)
        {
            if (cb_selectServer.SelectedIndex != -1)
            {
                cb_selectServer.IsEnabled = false;
                //lock buttons
                btn_start.IsEnabled = false;
                btn_stop.IsEnabled  = false;

                switch ((servers[cb_selectServer.SelectedIndex]).mode)
                {
                case 1:
                    socksServer = new SocksServer((ushort)(servers[cb_selectServer.SelectedIndex]).localPort);
                    socksServer.Start((servers[cb_selectServer.SelectedIndex]).host, (servers[cb_selectServer.SelectedIndex]).port, (servers[cb_selectServer.SelectedIndex]).password);
                    break;
                }
            }
        }
コード例 #2
0
        public void Disposing_should_dispose_all_open_connections()
        {
            var listener = new TcpListener(new IPEndPoint(IPAddress.Loopback, 0), new NullLoggerFactory());

            var connectionsBlock     = new BufferBlock <ISocksConnection>();
            var connectionBatchBlock = new BatchBlock <ISocksConnection>(2);

            connectionsBlock.LinkTo(connectionBatchBlock);

            var connectionFactory = A.Fake <ISocksConnectionFactory>();

            A.CallTo(() => connectionFactory.Create(null))
            .WithAnyArguments()
            .ReturnsLazily(
                () =>
            {
                var connection = A.Fake <ISocksConnection>();
                connectionsBlock.Post(connection);
                return(connection);
            });

            ISocksConnection[] connections;
            using (var server = new SocksServer(listener, connectionFactory, new NullLoggerFactory()))
            {
                server.Start();
                var client1 = new TcpClient();
                client1.Connect(
                    ((IPEndPoint)listener.ListenEndPoint).Address,
                    ((IPEndPoint)listener.ListenEndPoint).Port);
                var client2 = new TcpClient();
                client2.Connect(
                    ((IPEndPoint)listener.ListenEndPoint).Address,
                    ((IPEndPoint)listener.ListenEndPoint).Port);
                connections = connectionBatchBlock.Receive();
            }

            foreach (var connection in connections)
            {
                A.CallTo(() => connection.Dispose()).MustHaveHappened();
            }
        }