Beispiel #1
0
        public static void StartUpTransService()
        {
            var host = new ServerHost("文件传输");

            // 启动登录连接服务线程
            ThreadPool.QueueUserWorkItem(new WaitCallback(obj =>
            {
                while (true)
                {
                    var binding = new NetTcpBinding(SecurityMode.None)
                    {
                        Name = "TransferFileBinding",
                        MaxReceivedMessageSize = 1024 * 1024 * 1024 * 1024L,
                        TransferMode           = TransferMode.Streamed,
                    };
                    if (!host.StartService(typeof(DownloadTransmissionService), typeof(IFileTransmissionService),
                                           binding, DownloadTransmissionService.ServicePort, "DownloadTransmissionService"))
                    {
                        Thread.Sleep(1000);
                        continue;
                    }
                    TransServerHost = host;
                    break;
                }
            }));
        }
Beispiel #2
0
        /// <summary>
        /// Event handler for the listen button of the server GUI. When
        /// the user selects the listen button of the server, a host
        /// channel is created and opened which will be used by the client
        /// to communicate with the server. The port number and the server
        /// IP address can be entered in the GUI.
        /// </summary>
        /// <param name="sender">The default sender object for which the callback is
        /// associated</param>
        /// <param name="e">Platform event object for the button click operation</param>
        private void ListenButton1_Click(object sender, RoutedEventArgs e)
        {
            string localPort1 = RemotePortTextBox1.Text;
            string endpoint1  = RemoteAddressTextBox1.Text + localPort1 + "/IBasicService";

            try
            {
                if (localPort1.Equals("") || RemoteAddressTextBox1.Text.Equals(""))
                {
                    throw new Exception("Input URI not proper. Please provide valid URL");
                }
                String projectLocation = "";
                server = new ServerHost();
                server.CreateReceiveChannel(endpoint1);
                listBox1.Items.Insert(0, "Started.. Waiting for a Client");
                ListenButton1.IsEnabled = false;
                StopButton.IsEnabled    = true;
                projectLocation         = "The test files directory is " + Directory.GetCurrentDirectory();
                listBox1.Items.Insert(1, projectLocation);
                BrowseButton.IsEnabled = true;
                selectedFolderPath     = Directory.GetCurrentDirectory();
                UpdateFileContents();
            }
            catch (Exception ex)
            {
                Window        temp = new Window();
                StringBuilder msg  = new StringBuilder(ex.Message);
                msg.Append("\nport = ");
                msg.Append(localPort1.ToString());
                temp.Content = msg.ToString();
                temp.Height  = 100;
                temp.Width   = 500;
                temp.Show();
            }
        }
Beispiel #3
0
 public async Task CancelGame(IUser user, bool forceClose = false)
 {
     if (Status > GameStatus.Cancelled && (user.Id == Hoster?.Id || forceClose))
     {
         if (Status < GameStatus.GaiaEnding)
         {
             await(await ServerHost.GetTextChannelsAsync()).First((x) => x.Name == "public_gvg").SendMessageAsync("The game has been cancelled by the host.");
         }
         Status = GameStatus.Cancelled;
         foreach (var mem in GaiaMembers.Concat(GuardianMembers).Concat(OCMembers).Concat(Civilians))
         {
             try
             {
                 await mem.RemoveRolesAsync(new IRole[] { GvG_Player, GvG_Dead_Player });
             } catch (Exception)
             {
                 // do nothing
             }
         }
         GaiaMembers.Clear();
         GuardianMembers.Clear();
         OCMembers.Clear();
         Civilians.Clear();
         PhaseTimer?.Change(Timeout.Infinite, Timeout.Infinite);
     }
 }
Beispiel #4
0
    void WebSearch()
    {
        ws = AppSoftware.GetComponent <WebSec>();
        sm = AppSoftware.GetComponent <SystemMap>();

        testsite = Database.GetComponent <TestSite>();
        becas    = Database.GetComponent <Becas>();
        RevaTest = Database.GetComponent <Test>();
        ping     = Database.GetComponent <Ping>();
        uc       = Database.GetComponent <Unicom>();
        jd       = Database.GetComponent <JailDew>();
        LEC      = Database.GetComponent <LECBank>();
        reva     = Database.GetComponent <Reva>();
        st       = Database.GetComponent <ShareTrades>();
        mgw      = Minigames.GetComponent <MiniGameWeb>();
        tug      = Database.GetComponent <TUG>();
        sh       = Database.GetComponent <ServerHost>();
        test1    = Database.GetComponent <Test1>();
        gstocks  = Database.GetComponent <GStocks>();
        hs       = Database.GetComponent <HardwareSite>();
        //cc = Database.GetComponent<CabbageCorp>();

        dr = Minigames.GetComponent <DragRacer>();

        ib = AppSoftware.GetComponent <InternetBrowser>();
    }
Beispiel #5
0
 public static void OnStartUpMainService(ServerHost host)
 {
     // 启动主服务线程
     ThreadPool.QueueUserWorkItem(new WaitCallback(obj =>
     {
         while (IsAppRunning)
         {
             var binding = new NetTcpBinding(SecurityMode.None);
             binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows;
             binding.Security.Transport.ProtectionLevel      = System.Net.Security.ProtectionLevel.EncryptAndSign;
             binding.OpenTimeout            = TimeSpan.MaxValue;
             binding.SendTimeout            = TimeSpan.MaxValue;
             binding.ReceiveTimeout         = TimeSpan.MaxValue;
             binding.MaxReceivedMessageSize = 1024 * 1024 * 1024;
             binding.MaxBufferPoolSize      = 1024 * 1024 * 1024;
             if (!host.StartService(typeof(MainService), typeof(IMainService), binding, (int)PortID.MainService, "MainService"))
             {
                 Thread.Sleep(1000);
                 continue;
             }
             ServerHostMain = host;
             break;
         }
     }));
     // 启动登录断连检测线程
     UserMgr.StartUserKickingDetectingThread();
 }
        static void AddODataSupport(ServerHost server)
        {
            var objectModelBuilder = new ODataConventionModelBuilder();

            var bornInfo = objectModelBuilder.ComplexType <BornInfoView>();

            bornInfo.Property(bi => bi.When);
            bornInfo.Property(bi => bi.Where);

            var person = objectModelBuilder.EntitySet <PersonView>("PeopleView")
                         .EntityType.HasKey(p => p.Id);

            person.Property(p => p.Name);
            person.Property(p => p.Version);
            person.ComplexProperty(p => p.BornInfo);

            var address = objectModelBuilder.EntitySet <AddressView>("AddressesView")
                          .EntityType.HasKey(a => a.AddressId);

            address.Property(a => a.Street);
            address.Property(a => a.PersonId);

            server.AddHttpConfigurationCustomization(cfg =>
            {
                cfg.MapODataServiceRoute(
                    routeName: "ODataRoute",
                    routePrefix: null,
                    model: objectModelBuilder.GetEdmModel()
                    );
            });
        }
Beispiel #7
0
        static void ServerThreadLoop(object mrevent)
        {
            ManualResetEvent resetEvent = (ManualResetEvent)mrevent;
            var host = new ServerHost();

            SingleonIPCService.Instance.OnMessageRecieved += IPCService_OnMessageRecieved;
            BindingScheme schemes = BindingScheme.NAMED_PIPE;

            foreach (var sch in _options.BindingScheme)
            {
                switch (sch)
                {
                case 't':
                    schemes |= BindingScheme.TCP;
                    break;

                case 'p':
                    schemes |= BindingScheme.NAMED_PIPE;
                    break;
                }
            }

            host.Start(SingleonIPCService.Instance, resetEvent, new ServerOptions(_options.ServerName, new Dictionary <string, string>()
            {
                { "Description", "Report CPU and RAM usage" }
            })
            {
                Scheme = schemes, EnableDiscovery = true
            });
        }
Beispiel #8
0
        public void Accept()
        {
            ServerAE       = ServerAE.Trim();
            ServerName     = ServerName.Trim();
            ServerLocation = ServerLocation.Trim();
            ServerHost     = ServerHost.Trim();

            if (base.HasValidationErrors)
            {
                this.ShowValidation(true);
            }
            else
            {
                var current          = _serverTree.CurrentNode;
                var allButCurrent    = _serverTree.RootServerGroup.GetAllServers().Where(s => s != current).Cast <IServerTreeDicomServer>();
                var sameAETitleCount = allButCurrent.Count(s => s.AETitle == _serverAE);
                if (sameAETitleCount > 0)
                {
                    var message = sameAETitleCount == 1
                                      ? SR.ConfirmAETitleConflict_OneServer
                                      : String.Format(SR.ConfirmAETitleConflict_MultipleServers, sameAETitleCount);

                    if (DialogBoxAction.No == Host.DesktopWindow.ShowMessageBox(message, MessageBoxActions.YesNo))
                    {
                        return;
                    }
                }

                var newServer = new ServerTreeDicomServer(
                    _serverName,
                    _serverLocation,
                    _serverHost,
                    _serverAE,
                    _serverPort,
                    _isStreaming,
                    _headerServicePort,
                    _wadoServicePort);

                // edit current server
                if (_serverTree.CurrentNode.IsServer)
                {
                    _serverTree.ReplaceDicomServerInCurrentGroup(newServer);
                }
                // add new server
                else if (_serverTree.CurrentNode.IsServerGroup)
                {
                    ((IServerTreeGroup)_serverTree.CurrentNode).AddChild(newServer);
                    _serverTree.CurrentNode = newServer;
                }

                _serverTree.Save();

                SetServerNodeMetaProperties(_serverName, _isPriorsServer);

                _serverTree.FireServerTreeUpdatedEvent();

                this.ExitCode = ApplicationComponentExitCode.Accepted;
                Host.Exit();
            }
        }
Beispiel #9
0
 void server_ChunksACKed(ServerHost host)
 {
     Dispatcher.BeginInvoke((Action)(() =>
     {
         UpdateServerProgress(host);
     }), System.Windows.Threading.DispatcherPriority.Background);
 }
Beispiel #10
0
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);

            ServerHost = new ServerHost();
            ServerHost.Start();
        }
Beispiel #11
0
        static void Main(string[] args)
        {
            Init();

            ServerHost httpHost = new ServerHost();

            httpHost.Run();

            Console.WriteLine("HTTP监听设置成功。");
            Console.WriteLine("站点网址:" + httpHost.Option.HttpListenerOptions.First().ToUrl());
            Console.WriteLine("EXIT: 退出模拟服务,cls: 清屏。");

            while (true)
            {
                string input = Console.ReadLine();
                if (input.Is("exit"))
                {
                    return;
                }
                if (input.Is("cls"))
                {
                    Console.Clear();
                }
            }
        }
Beispiel #12
0
		public async Task Listens()
		{
			ServerSettings settings = GetDefaultSettings();
			using (CancellationTokenSource cancellation = new CancellationTokenSource())
			{
				ServerHost host = new ServerHost(settings);
				Task serveForever = host.ServeForeverAsync(cancellation.Token);

				Task test = Task.Run(
					async () =>
					{
						var getTasks = host.Endpoints.Select(ep => _client.GetAsync(ep)).ToList();
						foreach (var task in getTasks)
						{
							using (HttpResponseMessage response = await task)
							{
								_output.WriteLine($"Response from {response.RequestMessage.RequestUri}");
								_output.WriteLine(response.ToString());

								Assert.True(response.IsSuccessStatusCode);
								Assert.Equal(HttpStatusCode.OK, response.StatusCode);
							}
						}
					});

				await Task.WhenAny(test, serveForever);
			}
		}
Beispiel #13
0
 void server_ClientJoined(ServerHost host, Guid clientIdentity)
 {
     Dispatcher.BeginInvoke((Action)(() =>
     {
         this.lblServerClients.Text = host.Clients.Count.ToString();
         // TODO: add an event to a log window
     }), System.Windows.Threading.DispatcherPriority.Background);
 }
 static void AddSignalRSupport(ServerHost server)
 {
     server.AddAppBuilderCustomization(appBuilder =>
     {
         appBuilder.UseCors(CorsOptions.AllowAll);
         appBuilder.MapSignalR();
     });
 }
Beispiel #15
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            ServerHost = new ServerHost();
            ServerHost.Start();
        }
Beispiel #16
0
 void server_ChunkSent(ServerHost host, int chunkIdx)
 {
     serverCurrentIndex = chunkIdx;
     Dispatcher.BeginInvoke((Action)(() =>
     {
         UpdateServerProgress(host);
     }), System.Windows.Threading.DispatcherPriority.Background);
 }
Beispiel #17
0
        private static void Main(string[] args)
        {
            string     sUrlService = "http://127.0.0.1:8000/GameFind";
            ServerHost pHost       = new ServerHost(sUrlService);

            pHost.Start();
            Console.WriteLine("Press any key to stop");
            Console.ReadKey(true);
        }
Beispiel #18
0
        /// <summary>
        /// 设置小程序业务域名
        /// </summary>
        /// <param name="access_token">请使用第三方平台获取到的该小程序授权的authorizer_access_token</param>
        /// <param name="wechatid">微信号</param>
        /// <returns></returns>
        public static ServerHost SetWebviewDomain(string access_token, object data)
        {
            string     url      = string.Format(_setWebviewDomainUrl, access_token);
            string     dataJson = JsonConvert.SerializeObject(data);
            string     result   = HttpHelper.DoPostJson(url, dataJson);
            ServerHost model    = GetResultModel <ServerHost>(result);

            return(model);
        }
 protected override void OnStop()
 {
     if (this._server == null)
     {
         return;
     }
     this._server.Stop();
     this._server = null;
 }
Beispiel #20
0
        /// <summary>
        ///
        /// </summary>
        public void Start()
        {
            if (AnyIpAddress == false)
            {
                for (int _ipadrs = 0; _ipadrs < IpAddresses.Length; _ipadrs++)
                {
                    this.Start(IpAddresses[_ipadrs]);
                }
            }
            else
            {
                this.Start(HostName);
            }

            var _ipOrLocalHost = (AnyIpAddress == false) ? IpAddresses[0] : "localhost";
            {
                var _urlBehavior = String.Format("http://{0}:{1}/{2}", _ipOrLocalHost, BehaviorPort, ServiceName);

                ServiceThrottlingBehavior _throttling = ServerHost.Description.Behaviors.Find <ServiceThrottlingBehavior>();
                if (_throttling == null)
                {
                    _throttling = new ServiceThrottlingBehavior
                    {
                        MaxConcurrentCalls     = int.MaxValue,
                        MaxConcurrentSessions  = int.MaxValue,
                        MaxConcurrentInstances = int.MaxValue
                    };

                    ServerHost.Description.Behaviors.Add(_throttling);
                }

                //ServiceDebugBehavior _debugging = ServerHost.Description.Behaviors.Find<ServiceDebugBehavior>();
                //if (_debugging == null)
                //{
                //    _debugging = new ServiceDebugBehavior();
                //    _debugging.IncludeExceptionDetailInFaults = true;

                //    ServerHost.Description.Behaviors.Add(_debugging);
                //}

                ServiceMetadataBehavior _metadata = ServerHost.Description.Behaviors.Find <ServiceMetadataBehavior>();
                if (_metadata == null)
                {
                    _metadata = new ServiceMetadataBehavior
                    {
                        HttpGetUrl     = new Uri(_urlBehavior),
                        HttpGetEnabled = true
                    };

                    ServerHost.Description.Behaviors.Add(_metadata);
                }

                this.BehaviorUrl = _urlBehavior;
                ServerHost.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), _urlBehavior);
            }
        }
Beispiel #21
0
        public async static Task SetUpServerClient(TestContext context)
        {
            _mockObject = new Tests.ServerLibrary.MockRoot();

            _server = new ServerHost(1100, _mockObject);
            _server.Start();

            _client = new RemoteClient();
            await _client.ConnectAsync("127.0.0.1:1100");
        }
Beispiel #22
0
        static void ServerThreadLoop(object mrevent)
        {
            ManualResetEvent resetEvent = (ManualResetEvent)mrevent;
            var host = new ServerHost();

            host.Start(SingleonIPCService.Instance, resetEvent, new ServerOptions("DatabaseServer", null)
            {
                Scheme = BindingScheme.NAMED_PIPE | BindingScheme.TCP
            });
        }
Beispiel #23
0
        static void Main(string[] args)
        {
            var app = new ServerHost();
            var addr = "http://*:8080/";
            app.Init();
            app.Start(addr);
            Console.WriteLine("AppHost Created at {0}, listening on {1}", DateTime.Now, addr);

            Console.WriteLine("CTRL + C to exit");
            Thread.Sleep(Timeout.Infinite);
        }
        private void MainForm_Load(object sender, EventArgs e)
        {
            MinecraftServer = new ServerHost(398475);
            InitializeMinecraftServer();
            loadJson();
            initItemData();
            comboInit();

            string[] property = { "flat", "normal", "largebiomes", "amplified" };
            comboWorldProperty.Items.AddRange(property);
            comboWorldProperty.SelectedIndex = 0;
        }
Beispiel #25
0
        public void ResolveProxyTypesLocal_ProxyObjectBase(ServerHost server, RemoteClient client, Type expectedType)
        {
            server.Start();
            client.ConnectAsync($"127.0.0.1:{server.ListenPort}").Wait();

            var proxy = client.GetRootObject <IMockRoot>();

            server.Dispose();
            client.Dispose();

            Assert.IsNotNull(proxy, "GetRootObject returned null!");
            Assert.IsTrue(proxy.GetType() == expectedType, $"Returned type not expected! {proxy} : {expectedType}");
        }
Beispiel #26
0
 private void Window_Closed(object sender, EventArgs e)
 {
     if (DialogResult == true)
     {
         ServerHost.GetBindingExpression(TextBox.TextProperty).UpdateSource();
         QrServerAeTitle.GetBindingExpression(TextBox.TextProperty).UpdateSource();
         QrServerPort.GetBindingExpression(IntegerUpDown.ValueProperty).UpdateSource();
         StoreServerAeTitle.GetBindingExpression(TextBox.TextProperty).UpdateSource();
         StoreServerPort.GetBindingExpression(IntegerUpDown.ValueProperty).UpdateSource();
         ClientAeTitle.GetBindingExpression(TextBox.TextProperty).UpdateSource();
         ClientPort.GetBindingExpression(IntegerUpDown.ValueProperty).UpdateSource();
     }
 }
Beispiel #27
0
        private void RemoteService_Load(object sender, EventArgs e)
        {
            System.Net.ServicePointManager.DefaultConnectionLimit = 2000;
            RS_CaseRunner_Timer.Interval = 1000;
            RS_CaseRunner_Timer.Tick    += AT_CaseRunner_Timer_Tick;
            RS_CaseRunner_Timer.Enabled  = true;

            ShowIp();

            serverHost = new ServerHost(new Uri("http://localhost:8087/SelService"));
            serverHost.OnBackNowRunnerList += serverHost_OnBackNowRunnerList;
            serverHost.OnServerHostMessage += serverHost_OnServerHostMessage;
        }
Beispiel #28
0
        public DataSourceCredentials(string connStr, DataSourceProvider?provider = null)
        {
            var connStrParams = ExtractConnStrParams(connStr);

            DataSourceProvider = provider ?? GetDataSourceProvider(connStrParams);

            if (connStrParams.ContainsKey("server"))
            {
                ServerHost = connStrParams["server"];
            }

            if (connStrParams.ContainsKey("data source"))
            {
                ServerHost = connStrParams["data source"];
            }

            if (connStrParams.ContainsKey("port") && int.TryParse(connStrParams["port"], out var port))
            {
                ServerPort = port;
            }

            if (connStrParams.ContainsKey("database"))
            {
                DbName = connStrParams["database"];
            }

            if (connStrParams.ContainsKey("user id"))
            {
                UserName = connStrParams["user id"];
            }

            if (connStrParams.ContainsKey("password"))
            {
                Pass = connStrParams["password"];
            }

            //oracle should use uid / pwd

            //Post process...
            if (DataSourceProvider == DataSourceProvider.SqlServer)
            {
                var hostAndPort = ServerHost.Split(',');
                ServerHost = hostAndPort.First();
                if (hostAndPort.Length > 1 && int.TryParse(hostAndPort[1], out var port1))
                {
                    ServerPort = port1;
                }
            }
        }
Beispiel #29
0
        public static void Main(string[] args)
        {
            //iniciamos el host que va a escuchar por las solicitudes de compartir de los clientes de escrotorio
            ServerAPI.Current = new ServerAPI();
            ServerHost host = new ServerHost(new System.Net.IPEndPoint(IPAddress.Any, 1666));

            ServerHost.Current = host;
            host.Start();

            //webapp
            var webHost = BuildWebHost(args);

            Services = webHost.Services;
            webHost.Run();
        }
Beispiel #30
0
        private void btnServerStart_Click(object sender, RoutedEventArgs e)
        {
            if (IsServerRunning)
            {
                return;
            }

            server = new ServerHost(ZMQ.Transport.TCP, "*:12198", String.Empty, new TarballStreamWriter(Enumerable.Empty <FileInfo>()), txtServerFolder.Text, 512000, 50, false);
            server.ClientJoined += new Action <ServerHost, Guid>(server_ClientJoined);
            server.ClientLeft   += new Action <ServerHost, Guid, ServerHost.ClientLeaveReason>(server_ClientLeft);
            server.ChunkSent    += new Action <ServerHost, int>(server_ChunkSent);
            server.ChunksACKed  += new Action <ServerHost>(server_ChunksACKed);

            serverThread = new Thread(new ParameterizedThreadStart(server.Run));
            serverThread.Start();
            IsServerRunning = true;
        }
        private void btnStart_Click(object sender, EventArgs e)
        {
            if (_host == null)
            {
                _host = new ServerHost();
                _host.Run();                  // 使用默认的配置文件启动监听服务
            }
            else
            {
                _host.Start();
            }

            btnStart.Enabled = false;
            btnStop.Enabled  = true;

            tabControl1.SelectedIndex = 1;
        }
        protected override void OnStart(string[] args)
        {
            var baseAddress = ConfigurationManager.AppSettings["owin/baseAddress"];

            var bootstrapper = new WindsorBootstrapper(AppDomain.CurrentDomain.BaseDirectory);
            var windsor      = bootstrapper.Boot();

            this._server = new ServerHost(
                baseAddress,
                bootstrapper.ProbeDirectory,
                windsor);

            AddODataSupport(this._server);
            AddSignalRSupport(this._server);

            this._server.Start();
        }
Beispiel #33
0
        public void HttpServer_WhenSessionIsCorrectInASecuredContext_ThenChangesTheContext()
        {
            var server = new ServerHost(new Client("localhost", 901));
            string response;

            using (var httpServer = server.Do(
                new StartHttpServer(
                    new[]
                    {
                        "/test-template/"
                    })))
            {
                httpServer.Modules.Add(new xTagsHttpContextForTest("<r><template id='a' /></r>", "template"));
                var responseResult = HttpRequest.DoRequest("http://localhost:901/test-template/");
                Assert.IsFalse(responseResult.HasError);
                response = responseResult.Response;
            }

            Assert.AreEqual("<div id='a'></div>", response);
        }
Beispiel #34
0
        void RenderProgress(ServerHost host, bool display)
        {
            lock (lineWriter)
            {
                int numChunks = host.NumChunks;
                if (numChunks == 0) return;

                int usableWidth = consoleWidth - 3;

                int blocks = numChunks / usableWidth;
                int blocksRem = numChunks % usableWidth;

                int subblocks = usableWidth / numChunks;
                int subblocksRem = usableWidth % numChunks;

                if (!display)
                {
                    if (blocks > 0) display = (DateTimeOffset.UtcNow.Subtract(lastDisplayTime).TotalMilliseconds >= 500d) || (lastChunkBlock != (lastChunkBlock = lastWrittenChunk / blocks));
                    else display = true;
                }

                if (display)
                {
                    lastDisplayTime = DateTimeOffset.UtcNow;
                    if (!wroteLegend)
                    {
                        Console.WriteLine();
                        Console.WriteLine(" '-' no NAKs      '*' some NAKs      '#' all NAKs      'S' currently sending");
                        Console.WriteLine();
                        wroteLegend = true;
                    }

                    var clients = host.Clients;
                    string backup = new string('\b', consoleWidth - 1);
                    Console.Write(backup);
            #if true
                    string spaces = new string(' ', consoleWidth - 1);
                    Console.Write(spaces);
                    Console.Write(backup);
                    // Write ACK rates:
                    foreach (var cli in clients)
                    {
                        int bps = (cli.ACKsPerMinute * (host.ChunkSize / 60));
                        WriteRate(bps);
                    }
                    Console.WriteLine();
            #endif
                    Console.Write('[');

                    BitArray naks = new BitArray(host.NumBitArrayBytes * 8, false);
                    foreach (var cli in clients)
                    {
                        naks = naks.Or(cli.NAK);
                    }

                    //IEnumerator<bool> boolACKs = naks.Cast<bool>().Take(host.NumChunks).GetEnumerator();
                    int nakI = 0;
                    if (blocks > 0)
                    {
                        int lastc = 0, c = 0, subc = 0;
                        while (c < usableWidth)
                        {
                            int numBlocks = blocks;
                            lastc = c++;
                            if ((blocksRem > 0) && (subc++ >= blocksRem))
                            {
                                ++numBlocks;
                                ++c;
                                subc = 0;
                            }

                            bool allOn = true;
                            bool allOff = false;
                            for (int i = 0; (i < numBlocks) && (nakI < host.NumChunks); ++i, ++nakI)
                            {
                                bool curr = naks[nakI];
                                allOn = allOn & curr;
                                allOff = allOff | curr;
                            }

                            for (int x = lastc; (x < c) && (c < usableWidth); ++x)
                            {
                                if ((lastWrittenChunk >= c * blocks) && (lastWrittenChunk < (c + 1) * blocks)) Console.Write('S');
                                else if (allOn) Console.Write('#');
                                else if (allOff) Console.Write('*');
                                else Console.Write('-');
                            }
                        }
                    }
                    else
                    {
                        int lastc = 0, c = 0, subc = 0;
                        for (int i = 0; i < numChunks; ++i)
                        {
                            lastc = c;
                            c += subblocks;
                            if ((subblocksRem > 0) && (subc++ >= subblocksRem))
                            {
                                ++c;
                                subc = 0;
                            }

                            if (++nakI >= host.NumChunks) break;
                            bool curr = naks[nakI];

                            for (int x = lastc; (x < c) && (c < usableWidth); ++x)
                            {
                                if (lastWrittenChunk == i) Console.Write('S');
                                else if (curr) Console.Write('#');
                                else Console.Write('-');
                            }
                        }
                    }

                    Console.Write(']');
                }
            }
        }
Beispiel #35
0
 void ChunksACKed(ServerHost host)
 {
     RenderProgress(host, false);
 }
Beispiel #36
0
        private void btnServerStart_Click(object sender, RoutedEventArgs e)
        {
            if (IsServerRunning) return;

            server = new ServerHost(ZMQ.Transport.TCP, "*:12198", String.Empty, new TarballStreamWriter(Enumerable.Empty<FileInfo>()), txtServerFolder.Text, 512000, 50, false);
            server.ClientJoined += new Action<ServerHost, Guid>(server_ClientJoined);
            server.ClientLeft += new Action<ServerHost, Guid, ServerHost.ClientLeaveReason>(server_ClientLeft);
            server.ChunkSent += new Action<ServerHost, int>(server_ChunkSent);
            server.ChunksACKed += new Action<ServerHost>(server_ChunksACKed);

            serverThread = new Thread(new ParameterizedThreadStart(server.Run));
            serverThread.Start();
            IsServerRunning = true;
        }
Beispiel #37
0
 void ChunkSent(ServerHost host, int chunkIdx)
 {
     lastWrittenChunk = chunkIdx;
     RenderProgress(host, false);
 }
Beispiel #38
0
 void server_ChunksACKed(ServerHost host)
 {
     Dispatcher.BeginInvoke((Action)(() =>
     {
         UpdateServerProgress(host);
     }), System.Windows.Threading.DispatcherPriority.Background);
 }
Beispiel #39
0
 void server_ChunkSent(ServerHost host, int chunkIdx)
 {
     serverCurrentIndex = chunkIdx;
     Dispatcher.BeginInvoke((Action)(() =>
     {
         UpdateServerProgress(host);
     }), System.Windows.Threading.DispatcherPriority.Background);
 }
Beispiel #40
0
 void ClientJoined(ServerHost host, Guid id)
 {
     RenderProgress(host, true);
 }
Beispiel #41
0
 void server_ClientLeft(ServerHost host, Guid clientIdentity, ServerHost.ClientLeaveReason reason)
 {
     Dispatcher.BeginInvoke((Action)(() =>
     {
         this.lblServerClients.Text = host.Clients.Count.ToString();
         // TODO: add an event to a log window
     }), System.Windows.Threading.DispatcherPriority.Background);
 }
Beispiel #42
0
		public async Task HandlesManyRequests(Int64 requestCount)
		{
			ServerSettings settings = GetDefaultSettings();
			using (CancellationTokenSource cancellation = new CancellationTokenSource())
			{
				ServerHost host = new ServerHost(settings);
				Task serveForever = host.ServeForeverAsync(cancellation.Token);

				Task test = Task.Run(
					async () =>
					{
						var tortureTasks = host.Endpoints.Select(ep => HttpTorturer.TortureAsync(ep, requestCount)).ToList();
						foreach (var task in tortureTasks)
						{
							var result = await task;
							_output.WriteLine(result.ToString());
						}
					});

				await Task.WhenAny(test, serveForever);
			}
		}
Beispiel #43
0
 private void UpdateServerProgress(ServerHost host)
 {
     // TODO: update the progress bar control to accept a List<int> instead of BitArray and render it as a heat-map.
     BitArray curr = new BitArray(host.NumBitArrayBytes * 8, false);
     foreach (var cli in host.Clients)
     {
         if (!cli.HasNAKs) continue;
         if (cli.IsTimedOut) continue;
         curr = curr.Or(cli.NAK);
     }
     // Update the server progress bar:
     this.pbServerProgress.UpdateProgress(curr, serverCurrentIndex);
 }
Beispiel #44
0
 void ClientLeft(ServerHost host, Guid id, ServerHost.ClientLeaveReason reason)
 {
     RenderProgress(host, true);
 }