コード例 #1
0
        public void GettingHosts()
        {
            CreatePorts();

            try
            {
                tcpListenerHosts = new TcpListener(IPAddress.Any, NetSettings.PORT_FOR_HOSTS);
                tcpListenerHosts.Start();
                Console.WriteLine("The main Host-Server is running. Waiting for connections...");

                while (true)
                {
                    var tcpClient = tcpListenerHosts.AcceptTcpClient();

                    var result = ports.TryPop(out int port);
                    if (!result)
                    {
                        continue;
                    }

                    var hostServer = new HostServer(tcpClient, port, this);
                    Task.Run(new Action(hostServer.HandlingMessagesHost));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"\n\nException in MainHostServer!\nTargetSite:{ex.TargetSite}\n {ex.Message}\n StackTrace:{ex.StackTrace}");
                DisconnectHosts();
            }
        }
コード例 #2
0
 public void AddConnectionHost(string id, int port, HostServer hostServer)
 {
     if (hosts.TryAdd(id, hostServer))
     {
         Console.WriteLine($"Host-Server is connected: Port = {port}, ID = {id}");
     }
     else
     {
         Console.WriteLine($"Host-Server with such ID = {id} and Port = {port} is already connected!");
     }
 }