コード例 #1
0
ファイル: ClientObject.cs プロジェクト: samsusam12345/kvbd-3
        public ClientObject(TcpClient tcpClient, ServerObject serverObject)
        {
            Id     = Guid.NewGuid().ToString();
            client = tcpClient;
            server = serverObject;
            serverObject.AddConnection(this);
            byte[] rnd = new byte[512];
            RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();

            rng.GetBytes(rnd);
            authQ = rnd;
        }
コード例 #2
0
        static void Main(string[] args)
        {
            TcpChannel channel = new TcpChannel(8086);

            ChannelServices.RegisterChannel(channel, false);
            ServerObject serverObject = new ServerObject(args);

            RemotingServices.Marshal(serverObject, "ServerObject",
                                     typeof(ServerObject));
            System.Console.WriteLine("<enter> para sair ...");
            System.Console.ReadLine();
        }
コード例 #3
0
 private static void Main(string[] args)
 {
     try
     {
         _listenThread = new Thread((ServerObject.Listen));
         _listenThread.Start();
     }
     catch (Exception ex)
     {
         ServerObject.Disconnect();
         Console.WriteLine(ex.Message);
     }
 }
コード例 #4
0
 static void Main(string[] args)
 {
     try
     {
         server = new ServerObject();
         server.StartReceivingMessages();
     }
     catch (Exception ex)
     {
         server.Disconnect();
         Console.WriteLine(ex.Message);
     }
 }
コード例 #5
0
        ServerObject server;         // объект сервера

        //конструктор, который инициализирует клиента
        public ClientObject(TcpClient tcpClient, ServerObject serverObject)
        {
            Id     = Guid.NewGuid().ToString();
            client = tcpClient;
            server = serverObject;
            serverObject.AddConnection(this);
            Stream = client.GetStream();

            int counter = 0;//счетчик кол-ва соединения с одинаковой комнатой

            //если соединений два, то комната заполнена, переходим к следующей

            //цикл установки комнаты
            while (true)
            {
                //проходим по всем комнатам и считаем сколько клиентов с этой комнатой
                //проверка комнат начинается с 1
                for (int i = 0; i < server.clients.Count; i++)
                {
                    if (server.clients[i].Room == room_number.ToString())
                    {
                        counter++;
                    }
                }

                //если соединений меньше, чем 2
                if (counter < 2)
                {
                    if (counter > 0)//если в комнате был один игрок, следовательно теперь их два, значит старт игры
                    {
                        Room = room_number.ToString();
                        Console.WriteLine("Подключился 2 игрок к комнате {0}", Room);
                        serverObject.GlobalRoomMessage("4", this.Room);//старт игры
                        Console.WriteLine("Старт игры");
                        break;
                    }
                    else//иначе, просто ожидаем подключение
                    {
                        Room = room_number.ToString();
                        Console.WriteLine("Подключился 1 игрок к комнате {0}", Room);
                        serverObject.RoomAnswerMessage("01", Room, Id);
                        break;
                    }
                }
                else// если подключения два, значит комната занята, увеличиваем номер комнаты
                {
                    room_number++;
                    counter = 0;
                }
            }
        }
コード例 #6
0
 static Thread listenThread; // потока для прослушивания
 static void Main(string[] args)
 {
     try
     {
         server       = new ServerObject();
         listenThread = new Thread(new ThreadStart(server.Listen));
         listenThread.Start();
     }
     catch (Exception ex)
     {
         server.Disconnect();
         Console.WriteLine(ex.Message);
     }
 }
コード例 #7
0
 public void Run()
 {
     try
     {
         _server      = new ServerObject();
         listenThread = new Thread(_server.Listen);
         listenThread.Start();
     }
     catch (Exception e)
     {
         _server.Disconnect();
         Console.WriteLine(e.Message);
     }
 }
コード例 #8
0
        static void Main(string[] args)
        {
            try
            {
                String    proc      = Process.GetCurrentProcess().ProcessName;
                Process[] processes = Process.GetProcessesByName(proc);
                if (processes.Length > 1)
                {
                    MessageBox.Show("One copy of RSend Server is already running on your computer!", "Warning", MessageBoxButtons.OK);
                    Application.Exit();
                    //Console.WriteLine("One copy of RSend Server is already running on your computer!");
                    return;
                }

                ServerObject ServerObj;
                try
                {
                    RemotingConfiguration.Configure("RSendServer.exe.config", false);
                    ServerObj = new ServerObject();
                    RemotingServices.Marshal(ServerObj, "ServerObject.rem");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Configuration file not found or damaged! " + ex.Message, "Error", MessageBoxButtons.OK);
                    Application.Exit();
                    //Console.WriteLine("Configuration file not found or damaged!");
                    return;
                }

                // Specify Console Application in Properties
                //ConsoleKeyInfo cki;
                //Console.TreatControlCAsInput = true; //Prevent example from ending if CTL+C is pressed.
                //do
                //{
                //    cki = Console.ReadKey();
                //} while (!(((cki.Modifiers & ConsoleModifiers.Control) != 0) && (cki.Key.ToString().ToLower() == "z")));
                Application.Run(new ServerForm(ServerObj));

                ServerObj.Close();
                ServerObj.WriteLog(ServerObj.sBuffer);
                ServerObj = null;
            }
            catch (Exception ex)
            {
                MessageBox.Show("" + ex.Message, "Warning", MessageBoxButtons.OK);
                Application.Exit();
                //Console.WriteLine(ex.Message);
                return;
            }
        }
コード例 #9
0
        public ClientObject(TcpClient tcpClient, ServerObject serverObject)
        {
            Id = Guid.NewGuid().ToString();

            this.tcpClient = tcpClient;
            server         = serverObject;
            Stream         = tcpClient.GetStream();

            IP = tcpClient.Client.RemoteEndPoint.ToString();

            GetClientInfo();

            serverObject.AddConnection(this);
        }
コード例 #10
0
        static void Main(string[] args)
        {
            Console.Title = "Server";
            Console.WriteLine("Server started...");

            ServerObject server     = new ServerObject();
            Task         serverTask = new Task(server.StartServer);

            serverTask.Start();
            serverTask.Wait();

            Console.WriteLine("Server stoped!");
            Console.ReadKey();
        }
コード例 #11
0
 private static void StartServer()
 {
     ip            = Dns.GetHostEntry(Dns.GetHostName()).AddressList.LastOrDefault(a => a.AddressFamily == AddressFamily.InterNetwork);
     Console.Title = "Server: " + ip;
     try
     {
         server       = new ServerObject();
         listenThread = new Thread(new ThreadStart(server.Listen));
         listenThread.Start();
     }
     catch (Exception ex)
     {
         server.Disconnect();
         Console.WriteLine("Connection failed: " + ex.Message);
     }
 }
コード例 #12
0
        static Thread listenThread; // потока для прослушивания

        static void Main(string[] args)
        {
            Logger.Write("Server started");
            try
            {
                server       = new ServerObject();
                listenThread = new Thread(server.Listen);
                listenThread.Start(); //старт потока
            }
            catch (Exception ex)
            {
                Logger.Write("Server stopped due to exception: " + ex.Message, LogLevel.Error);
                server.Disconnect();
                Console.WriteLine(ex.Message);
            }
        }
コード例 #13
0
        private void refreshButton_Click(object sender, RoutedEventArgs e)
        {
            int port = int.Parse(portTextBox.Text);

            server.Disconnect();
            try
            {
                server       = new ServerObject(port, clientsDataGrid);
                listenThread = new Thread(new ThreadStart(server.Listen));
                listenThread.Start();
            }
            catch (Exception ex)
            {
                server.Disconnect();
                Console.WriteLine(ex.Message);
            }
        }
コード例 #14
0
        static void Main(string[] args)
        {
            Console.Title           = "Server";
            Console.ForegroundColor = ConsoleColor.Green;

            try
            {
                _server       = new ServerObject();
                _listenThread = new Thread(new ThreadStart(_server.Listen));
                _listenThread.Start(); //старт потока
            }
            catch (Exception ex)
            {
                _server.Disconnect();
                Console.WriteLine(ex.Message);
            }
        }
コード例 #15
0
 static void Main(string[] args)
 {
     Console.WriteLine("Введите адресс ip");
     serverip = IPAddress.Parse(Console.ReadLine());
     Console.WriteLine("Введите номер порта");
     port = int.Parse(Console.ReadLine());
     Console.Clear();
     try
     {
         server       = new ServerObject();
         listenThread = new Thread(new ThreadStart(server.Listen));
         listenThread.Start();
     }
     catch (Exception ex)
     {
         server.Disconnect();
         Console.WriteLine(ex.Message);
     }
 }
コード例 #16
0
        static void Main(string[] args)
        {
            var projectPath = Path.GetDirectoryName(Path.GetDirectoryName(Directory.GetCurrentDirectory())) + @"\Database\";

            AppDomain.CurrentDomain.SetData("DataDirectory", projectPath);
            try
            {
                server = new ServerObject();
                Task.Factory.StartNew(server.Listen);
                do
                {
                }while (Console.ReadKey().Key != ConsoleKey.Escape);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                server.Disconnect();
            }
        }
コード例 #17
0
 public ClientObject(ServerObject _server, User _user)
 {
     server = _server;
     user   = _user;
 }
コード例 #18
0
 public ShareScreenWindow(ServerWindow serverWindow, DataGrid clientsDataGrid, ServerObject server)
 {
     InitializeComponent();
     this.serverWindow    = serverWindow;
     this.clientsDataGrid = clientsDataGrid;
     this.server          = server;
 }
コード例 #19
0
 public ServerForm(ServerObject ServerObj)
 {
     InitializeComponent();
     this.ServerObj = ServerObj;
 }
コード例 #20
0
 public ReceiveImageWindow(ServerWindow serverWindow, DataGrid clientsDataGrid, ServerObject server)
 {
     InitializeComponent();
     this.serverWindow    = serverWindow;
     this.clientsDataGrid = clientsDataGrid;
     this.server          = server;
 }
コード例 #21
0
 static void Main(string[] args)
 {
     ServerObject server = new ServerObject();
 }
コード例 #22
0
ファイル: Program.cs プロジェクト: samsusam12345/kvbd-3
        static void Main(string[] args)
        {
            Console.SetOut(new PrefixedWriter());
            Console.WriteLine("Server is starting");
            Console.WriteLine("Trying to upload root certificate");
            if (File.Exists("root.pfx"))
            {
                rootCert = new X509Certificate2("root.pfx");
                Console.WriteLine("Certificate uploaded");
            }
            else
            {
                Console.WriteLine("Root certificate was not found.");
                Console.Write("Enter the name of the holder: ");
                string subjectName = Console.ReadLine();
                Console.Write("Enter the amount of years for the certificate to expire: ");
                string expirate = Console.ReadLine();
                foreach (char c in expirate)
                {
                    if (!Char.IsDigit(c))
                    {
                        expirate = expirate.Replace(c.ToString(), "");
                    }
                }
                if (createRootCert(subjectName, DateTimeOffset.Now.AddYears(Convert.ToInt32(expirate))))
                {
                    Console.WriteLine("Certificate has been successfully created!");
                    rootCert = new X509Certificate2("root.pfx");
                    Console.WriteLine("Certificate uploaded");
                }
                else
                {
                    Console.WriteLine("Shutting down server...");
                    Console.ReadKey();
                    return;
                }
            }
            Console.WriteLine("Type \"help\" to get the information on existing commands");

            try
            {
                server     = new ServerObject();
                listenTask = Task.Run(() => server.Listen());
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                server.Disconnect();
            }

            while (true)
            {
                string command = Console.ReadLine();
                switch (command)
                {
                case "help":
                    Console.WriteLine("crtCreate - creates a new certificate with th specified values and a private key");
                    Console.WriteLine("quit - shuts down the server");
                    break;

                case "crtCreate":
                {
                    Console.Write("Enter the name of the holder: ");
                    string subjectName = Console.ReadLine();
                    Console.Write("Enter the amount of years for the certificate to expire: ");
                    string expirate = Console.ReadLine();
                    foreach (char c in expirate)
                    {
                        if (!Char.IsDigit(c))
                        {
                            expirate = expirate.Replace(c.ToString(), "");
                        }
                    }
                    Console.WriteLine(createChildCert(subjectName, DateTimeOffset.Now.AddYears(Convert.ToInt32(expirate)))? $"Certificate for {subjectName} has been successfully created." : $"Couldn't create a certificate for {subjectName}.");
                }
                break;

                case "showConnections":
                {
                    Console.WriteLine("You have {0} connections", ServerObject.clients.Count);
                    for (int i = 1; i <= ServerObject.clients.Count; i++)
                    {
                        Console.WriteLine("{0}.{1}", i, ServerObject.clients[i - 1].userName);
                    }
                    break;
                }

                case "removeConnection":
                {
                    Console.WriteLine("You have {0} connections", ServerObject.clients.Count);
                    for (int i = 1; i <= ServerObject.clients.Count; i++)
                    {
                        Console.WriteLine("{0}.{1}", i, ServerObject.clients[i - 1].userName);
                    }
                    Console.Write("Connection to remove: ");
                    int index = Convert.ToInt32(Console.ReadLine());
                    ServerObject.clients[index - 1].Close();
                    Console.WriteLine("Connection removed");
                    break;
                }

                case "quit":
                    Console.WriteLine("Shutting down the server...");
                    Console.ReadKey();
                    return;

                default:
                    Console.WriteLine("Unknown command");
                    break;
                }
            }
        }