public void Process()
        {
            Stream = client.GetStream();
            // получаем имя пользователя
            string message = GetMessage();

            userName = message;

            message = userName + " вошел в чат";
            // посылаем сообщение о входе в чат всем подключенным пользователям
            server.BroadcastMessage(message, this.Id);
            Console.WriteLine(message);
            // в бесконечном цикле получаем сообщения от клиента
            while (true)
            {
                message = GetMessage();
                if (message.Length != 0)
                {
                    message = String.Format("{0}: {1}", userName, message);
                    Console.WriteLine(message);
                    server.BroadcastMessage(message, this.Id);
                }
                else
                {
                    message = String.Format("{0} покинул чат", userName);
                    Console.WriteLine(message);
                    server.BroadcastMessage(message, this.Id);

                    server.RemoveConnection(this.Id);
                    Close();
                    break;
                }
            }
        }
Beispiel #2
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                // получаем имя пользователя
                string message = GetMessage();
                userName = message;

                CheckName(userName);

                server.clientsName.Add(userName);

                message = userName + " присоеденился";
                string clientsCount = Convert.ToString(server.clients.Count);

                server.BroadcastMessage($"Подключенных пользователей: {clientsCount}");
                // посылаем сообщение о входе в чат всем подключенным пользователям
                server.BroadcastMessage(message);

                Console.WriteLine(message);



                // в бесконечном цикле получаем сообщения от клиента
                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        message = String.Format("{0}: {1}", userName, message);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message);
                    }
                    catch
                    {
                        message = String.Format("{0}: покинул чат", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                //удаление из списка онлайна
                int index = server.usersId.IndexOf(this.Id);
                server.clientsName.RemoveAt(index);
                server.RemoveConnection(this.Id);
                string clientsCount = Convert.ToString(server.clients.Count);
                server.BroadcastMessage($"Подключенных пользователей: {clientsCount}");
                Close();
            }
        }
Beispiel #3
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                // получаем имя пользователя
                string message = GetMessage();
                //userName = message;

                //message = userName + " вошел в чат";
                // посылаем сообщение о входе в чат всем подключенным пользователям
                //server.BroadcastMessage(message, this.Id);
                //Console.WriteLine(message);
                // в бесконечном цикле получаем сообщения от клиента
                while (true)
                {
                    try
                    {
                        //
                        //Console.Write("Полученный текст: " + data + "\n\n");
                        //                data = String.Format(data);
                        //                if (data == info[0])
                        //                {
                        //                    data = String.Format("21:00");
                        //

                        message = GetMessage();

                        if (message == info[0])
                        {
                            message = String.Format("21:00");
                        }
                        //message = String.Format("{0}", message);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                    }
                    catch
                    {
                        message = String.Format("{0}: покинул чат", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #4
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                Console.WriteLine("Пользователь подключился");

                boardData = GetMessage();
                Console.WriteLine(boardData);

                while (!BoardIsSend)
                {
                    if (server.CountConnections() == 2)
                    {
                        server.BroadcastMessage(boardData, this.Id);
                        server.BroadcastMessage("ChangeFlag", this.Id);
                        Console.WriteLine("Flag is change");
                        //System.Threading.Thread.Sleep(200);
                        BoardIsSend = true;
                    }

                    System.Threading.Thread.Sleep(500);
                }



                // в бесконечном цикле получаем сообщения от клиента
                while (true)
                {
                    try
                    {
                        Command(GetMessage());
                    }
                    catch
                    {
                        Console.WriteLine("Пользователь отключился");
                        break;
                    }

                    System.Threading.Thread.Sleep(200);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                server.RemoveConnection(this.Id);
                Close();
            }
        }
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                                // получаем имя пользователя
                                string message = GetMessage();
                userName = message;

                message = userName + " вошел в чат";
                                // посылаем сообщение о входе в чат всем подключенным пользователям
                                server.BroadcastMessage(message, this.Id);

                Console.WriteLine(message);
                                // в бесконечном цикле получаем сообщения от клиента
                                while(true)
                {
                    try
                    {
                        message = GetMessage();
                        if (message == "")
                        {
                            throw new Exception();
                        }

                        message = String.Format("{0}: {1}", userName, message);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                    }
                    catch
                    {
                        message = String.Format("{0}: покинул чат", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                                // в случае выхода из цикла закрываем ресурсы
                                server.RemoveConnection(this.Id);

                Close();
            }
        }
Beispiel #6
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                // получаем имя пользователя
                string message = GetMessage();
                userName = message;

                message = userName + " зайшов в чат";
                // посылаем сообщение о входе в чат всем подключенным пользователям
                server.BroadcastMessage(message, this.Id);
                Console.WriteLine(message);
                // в бесконечном цикле получаем сообщения от клиента
                while (true)
                {
                    try
                    {
                        Random rnd = new Random();
                        int    i   = rnd.Next(1, 14);
                        Console.ForegroundColor = (System.ConsoleColor)i;
                        message = GetMessage();
                        message = String.Format("{0}: {1}", userName, message);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        Console.ResetColor();
                    }
                    catch
                    {
                        message = String.Format("{0}: залишив чат", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #7
0
        public void Process()
        {
            try
            {
                Stream = _client.GetStream();
                var message = GetMessage();
                _userName = message;

                message = _userName + " вошел в чат";
                _server.BroadcastMessage(message, Id);
                Console.WriteLine(message);

                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        if (message == "exit")
                        {
                            _client.Close();
                        }

                        message = $"{_userName}: {message}";
                        Console.WriteLine(message);
                        _server.BroadcastMessage(message, Id);
                    }
                    catch
                    {
                        message = $"{_userName}: покинул чат";
                        Console.WriteLine(message);
                        _server.BroadcastMessage(message, Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                _server.RemoveConnection(Id);
                Close();
            }
        }
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                // получаем имя пользователя
                string message = GetMessage();
                userName = message;

                var time = $"{DateTime.Now.Hour}:{DateTime.Now.Minute}";

                message = $"{time} - {userName} вошел в чат";
                // посылаем сообщение о входе в чат всем подключенным пользователям
                server.BroadcastMessage(message, this.Id);
                Console.WriteLine(message);
                // в бесконечном цикле получаем сообщения от клиента
                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        message = String.Format("{0} - {1}: {2}", time, userName, message);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                    }
                    catch
                    {
                        message = String.Format("{0} - {1}: покинул чат.", time, userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                server.RemoveConnection(this.Id);
                Close();
            }
        }
        public void Command(string command)
        {
            string[] args = command.Split(' ');
            switch (args[0])
            {
            case "Shoot":
                Shoot(args[1]);
                System.Threading.Thread.Sleep(200);
                if (args[2] == "-")
                {
                    server.BroadcastMessage("ChangeFlag", this.Id);
                }
                break;

            case "Check":
                Check(args[1], args[2]);
                break;
            }
        }
Beispiel #10
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                // Primim numele Client
                string message = GetMessage();
                userName = message;

                message = userName + " Ati intrat in CHAT";
                // Trimitem mesaj de intrare in Chat
                server.BroadcastMessage(message, this.Id);
                Console.WriteLine(message);
                // in urmatorul ciclu primim mesaje
                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        message = String.Format("{0}: {1}", userName, message);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                    }
                    catch
                    {
                        message = String.Format("{0}: Ati parasit CHAT-ul", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // Daca iesim din chat inchidem procesul
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #11
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                // получаем имя пользователя
                string message = GetMessage();
                userName = message;

                message = userName + " logged in to the chat";
                // посылаем сообщение о входе в чат всем подключенным пользователям
                server.BroadcastMessage(message, this.Id);
                Console.WriteLine(message);
                // в бесконечном цикле получаем сообщения от клиента
                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        message = String.Format("{0}: {1}", userName, message);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                    }
                    catch
                    {
                        message = String.Format("{0}: left the chat", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #12
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                string message = GetMessage();
                userName = message;

                message = userName + " entered chat.";

                server.BroadcastMessage(message, Id);
                Console.WriteLine(message);

                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        message = String.Format("{0}: {1}", userName, message);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, Id);
                    }
                    catch
                    {
                        message = String.Format("{0}: left the chat.", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                server.RemoveConnection(Id);
                Close();
            }
        }
Beispiel #13
0
        public void Process()
        {
            try
            {
                Stream = _client.GetStream();
                string message = GetMessage();
                _userName = message;

                message = _userName + "Entered chat";
                _server.BroadcastMessage(message, this.Id);
                Console.WriteLine(message);

                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        message = String.Format("{0}: {1}", _userName, message);
                        Console.WriteLine(message);
                        _server.BroadcastMessage(message, this.Id);
                    }
                    catch
                    {
                        message = String.Format("{0}: left the chat", _userName);
                        Console.WriteLine(message);
                        _server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                _server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #14
0
        public void Process()
        {
            try
            {
                stream = client.GetStream();
                string message = GetMessage();
                userName = message;

                message = userName + " вошел в чат";

                server.BroadcastMessage(message, this.Id);
                Console.WriteLine(message);

                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        message = String.Format("{0}: {1}", userName, message);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                    }
                    catch
                    {
                        message = String.Format("{0}: покинул нас =(", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #15
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                String message = GetMessage();                                      //Получаем имя пользователя
                userName = message;

                message = userName + " вошёл в чат";
                server.BroadcastMessage(message, this.Id);                          //Посылаем сообщение о входе в чат всем подключенным пользователям
                Console.WriteLine(message);

                while (true)                                                         //В бесконечном цикле получаем сообщения от клиента
                {
                    try
                    {
                        message = GetMessage();
                        message = String.Format("{0}: {1}", userName, message);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                    }
                    catch
                    {
                        message = String.Format("{0}: покинул чат", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception.Message);
            }
            finally
            {
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #16
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                string message = GetMessage();
                userName = message;

                message = userName + " is here";
                server.BroadcastMessage(message, this.Id);
                Console.WriteLine(message);
                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        message = $"{userName}: {message}";
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                    }
                    catch
                    {
                        message = $"{userName}: left chat";
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #17
0
        //public string GetUsername()
        //{
        //    BinaryReader reader = new BinaryReader(Stream);
        //    string username = reader.ReadString();
        //    return username;
        //}

        public void Process()
        {
            try
            {
                Console.WriteLine("начался метод Process");
                //byte[] messageBytes;
                string message;
                Console.WriteLine("Бесконечный цикл чата");
                while (true)
                {
                    try
                    {
                        message = GetMessageFromChat();
                        //message = GetMessageFromChat();
                        //message = String.Format("{0}: {1}", userName, message);
                        //Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                    }
                    catch
                    {
                        message = String.Format("{0}: покинул чат", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #18
0
        public void Process()
        {
            Stream = client.GetStream();
            string message = GetMessage();

            userName = message;

            ServerObject.listOfParticipants.Add(userName);

            message = "Notification: ================ " + userName + " enter in the chat.================";
            server.BroadcastMessage(message, Id);
            Console.WriteLine(message);

            message = userName + " ~Connect";
            server.BroadcastMessage(message, Id);

            UpdateParticipantsList(Id, userName);

            while (true)
            {
                try
                {
                    message = GetMessage();
                    message = String.Format("{0}: {1}", userName, message);
                    Console.WriteLine(message);
                    server.BroadcastMessage(message, Id);
                }
                catch
                {
                    message = String.Format(userName, "{0}: close from chat");
                    Console.WriteLine(message);
                    server.BroadcastMessage(message, Id);
                    break;
                }
            }
        }
Beispiel #19
0
 public void Process()
 {
     try
     {
         Stream = client.GetStream();
         // получаем имя пользователя
         string message = GetMessage();
         userName = message;
         Username = message;
         // посылаем сообщение о входе в чат всем подключенным пользователям
         server.BroadcastMessageForAll("$$$#!" + String.Join(",", server.Clients.Select(client => client.Username)), this.Id);
         Console.WriteLine(message);
         // в бесконечном цикле получаем сообщения от клиента
         while (true)
         {
             try
             {
                 message = GetMessage();
                 message = String.Format("{0}: {1}", userName, message);
                 Console.WriteLine(message);
                 server.BroadcastMessage(message, this.Id);
             }
             catch
             {
                 server.Clients.Remove(this);
                 server.BroadcastMessageForAll("$$$#!" + String.Join(",", server.Clients.Select(client => client.Username)), this.Id);
                 Console.WriteLine(message + " покинул чат");
                 break;
             }
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
     finally
     {
         // в случае выхода из цикла закрываем ресурсы
         server.RemoveConnection(this.Id);
         Close();
     }
 }
Beispiel #20
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();

                string message = GetMessage();
                userName = message;
                Thread myThr = new Thread(SendMess);
                myThr.Start();
                message = userName + " вошел в чат";
                server.SendListOfClients(server.clientsOnline);
                server.BroadcastMessage(message, this.Id);
                Console.WriteLine(message);

                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        if (message != "")
                        {
                            if (Regex.IsMatch(message, "/id:"))
                            {
                                message = Regex.Replace(message, "/id:", "");
                                string ID = message.Split(',')[0];
                                message = Regex.Replace(message, ID + ",", "");
                                server.SendPrivateMessage(message, ID, userName, Id);
                                Console.WriteLine(message);
                            }
                            else
                            {
                                message = String.Format("{0}: {1}", userName, message);
                                Console.WriteLine(message);
                                server.BroadcastMessage(message, this.Id);
                            }
                        }
                        if (message == "")
                        {
                            message = String.Format("{0}: покинул чат", userName);
                            Console.WriteLine(message);
                            server.BroadcastMessage(message, this.Id);
                            server.RemoveConnection(Id);
                            server.SendListOfClients(server.clientsOnline);
                            break;
                        }
                    }
                    catch
                    {
                        message = String.Format("{0}: покинул чат", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        server.RemoveConnection(Id);
                        server.SendListOfClients(server.clientsOnline);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                server.RemoveConnection(this.Id);
                server.SendListOfClients(server.clientsOnline);
                Close();
            }
        }
Beispiel #21
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                // получаем имя пользователя
                string message = GetMessage();
                userName = message;

                message = userName + " вошел в чат";
                // посылаем сообщение о входе в чат всем подключенным пользователям
                server.BroadcastMessage(message, this.Id, null);
                Console.WriteLine(message);
                // в бесконечном цикле получаем сообщения от клиента
                while (true)
                {
                    try
                    {
                        if (message == "")
                        {
                            break;
                        }
                        message = GetMessage();
                        if (message == "%exit%")
                        {
                            message = String.Format("{0}: покинул чат", userName);
                            Console.WriteLine(message);
                            break;
                        }
                        else if (message.Contains("%p%"))
                        {
                            string add = message.Substring(3, message.IndexOf("^") - 3);
                            message = message.Substring(message.IndexOf("^") + 1, message.Length - message.IndexOf("^") - 1);
                            Console.WriteLine("(Личное от {0} к {1}): {2}", userName, add, message);
                            message = String.Format("(личное от {0}): {1}", userName, message);
                            server.BroadcastMessage(message, this.Id, add);
                        }
                        else if (message == "%online%")
                        {
                            string add = "online";
                            server.BroadcastMessage(message, this.Id, add);
                            Console.WriteLine("{0} запросил список пользователей онлайн", userName);
                        }
                        else
                        {
                            message = String.Format("{0}: {1}", userName, message);
                            Console.WriteLine(message);
                            server.BroadcastMessage(message, this.Id, null);
                        }
                        message = null;
                    }
                    catch
                    {
                        message = String.Format("{0}: покинул чат", userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id, null);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #22
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                // получаем имя пользователя
                string message = GetMessage();
                while (!server.IsValidUsername(message))
                {
                    server.SendMessageToId("invalidlogin|", Id);
                    message = GetMessage();
                }
                userName = message;
                server.SendMessageTo("successeslogin|", UserName);
                server.BroadcastUserlist();

                message = $"msg|{userName} вошел в чат|";
                // посылаем сообщение о входе в чат всем подключенным пользователям
                server.BroadcastMessage(message);
                server.PrintMessage(message);
                // в бесконечном цикле получаем сообщения от клиента
                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        if (message[0] == '@')
                        {
                            var receiver = new string(message.Skip(1).TakeWhile(x => x != ' ').ToArray());
                            message = new string(message.Skip(receiver.Length + 1).ToArray());
                            message = $"msg|[{userName}] -> [{receiver}] :{message}|";
                            server.PrintMessage(message);
                            server.SendMessageTo(message, userName);
                            if (!server.SendMessageTo(message, receiver))
                            {
                                server.SendMessageTo("msg| Пользователь не найден.|", userName);
                            }
                        }
                        else if (message.Contains("#userdisconnect"))
                        {
                            server.RemoveConnection(Id);
                            Close();
                        }
                        else
                        {
                            message = $"msg|{userName}: {message}|";
                            server.PrintMessage(message);
                            server.BroadcastMessage(message);
                        }
                    }
                    catch
                    {
                        message = String.Format("msg|{0}: покинул чат|", userName);
                        server.PrintMessage(message);
                        server.BroadcastMessage(message);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                server.PrintMessage(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #23
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();

                // получаем имя пользователя
                string message = GetMessage();
                userName = message;
                ClientObject.clientName = userName;

                ServerObject.BroadcastId(Id);
                ServerObject.BroadcastDelUser(userName, Id);

                message = "\n" + userName + " - вошел(-ла) в чат (количество подключенных: " + ServerObject.clients.Count + " )\n";
                ServerObject.LogChat(message);
                server.BroadcastMessage(message, this.Id);

                // в бесконечном цикле получаем сообщения от клиента
                while (true)
                {
                    try
                    {
                        message = GetMessage();
                        if (ItIsCommand(message))                    // проверка, является ли сообщение командой
                        {
                            server.BroadcastNoify(message, this.Id); // рассылка уведомления от сервера
                        }
                        else
                        {
                            Console.WriteLine(message);
                            if (message.StartsWith("[@"))
                            {
                                Console.WriteLine("Личное сообщение");
                                ServerObject.BroadcastPrivateMessages(message, Id, userName);
                            }
                            else if (message.Contains("admin admin"))
                            {
                                ServerObject.Admin(message, userName);
                                message = $"{userName} стал(-a) админом";
                                ServerObject.LogChat(message);
                                server.BroadcastMessage(message, this.Id);
                            }
                            else if (message.Contains("del"))
                            {
                                ServerObject.AdminDelUser(message, userName);
                                message = $"{userName} удалил пользователя";
                                ServerObject.LogChat(message);
                                //server.BroadcastMessage(message, this.Id);
                            }
                            else
                            {
                                message = String.Format("{0}: {1}", userName, message);
                                ServerObject.LogChat(message);
                                server.BroadcastMessage(message, this.Id);
                            }
                        }
                    }
                    catch
                    {
                        message = String.Format("\n" + "{0} - покинул(-а) чат" + "\n", userName);
                        ServerObject.LogChat(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #24
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();

                string message = null;

                SetNamePass(GetMessage());

                if (server.Identification(userName, userPass))
                {
                    message = "takeid/" + Id;
                    byte[] data = Encoding.Unicode.GetBytes(message);
                    Stream.Write(data, 0, data.Length);

                    Thread.Sleep(100);

                    SendUserList();
                    Thread.Sleep(100);

                    message = "history/" + server.UploadHistory();
                    byte[] historyData = Encoding.Unicode.GetBytes(message);
                    Stream.Write(historyData, 0, historyData.Length);

                    Thread.Sleep(100);

                    message = "entry/" + DateTime.Now.ToLongTimeString() + '/' + userName + '/' + Id;
                    server.UserEnterMessage(userName);
                    server.BroadcastMessage(message, Id);

                    while (true)
                    {
                        try
                        {
                            message = GetMessage();

                            if (message.Length == 0)
                            {
                                throw new Exception();
                            }

                            MessageDecode(message);
                        }
                        catch
                        {
                            server.UserOutMessage(userName);

                            message = "leave/" + DateTime.Now.ToLongTimeString() + '/' + Id;

                            server.BroadcastMessage(message, this.Id);
                            break;
                        }
                    }
                }
                else
                {
                    message = "novalid/" + Id;
                    byte[] data = Encoding.Unicode.GetBytes(message);
                    Stream.Write(data, 0, data.Length);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                server.RemoveConnection(this.Id);
                Close();
            }
        }
Beispiel #25
0
        public void Process()
        {
            try
            {
                Stream = client.GetStream();
                string message;

                while (true)
                {
                    message = GetMessage();

                    var loginSchemaFrame    = NJsonSchema.JsonSchema.FromType <LoginEvent>();
                    var messageSchemaFrame  = NJsonSchema.JsonSchema.FromType <MessageEvent>();
                    var openCorrSchemaFrame = NJsonSchema.JsonSchema.FromType <OpenCorrespondence>();

                    JSchema loginSchema    = JSchema.Parse(loginSchemaFrame.ToJson().ToString());
                    JSchema messageSchema  = JSchema.Parse(messageSchemaFrame.ToJson().ToString());
                    JSchema openCorrSchema = JSchema.Parse(openCorrSchemaFrame.ToJson().ToString());



                    if (JObject.Parse(message).IsValid(loginSchema))
                    {
                        LoginEvent loginEvent = new LoginEvent();
                        loginEvent = JsonConvert.DeserializeObject <LoginEvent>(message);

                        bool chek = Authorization(loginEvent);

                        if (chek)
                        {
                            Console.WriteLine(loginEvent.login + " вошел в чат");
                            foreach (var client in server.clients)
                            {
                                Console.WriteLine(client.id + "-- idUser");
                            }
                            //   Image image = Image.FromFile(@"D:\Archive\Archive\StepChat\StepChat\Step_Chat\Server\ChatServer\Photos\1200px-Van_Gogh_-_Starry_Night_-_Google_Art_Project.jpg");
                            int[] ids_rec = new int[1];
                            ids_rec[0] = id;

                            server.BroadcastMessage(СompileResponseAfterLogin(), ids_rec);
                        }
                    }

                    if (JObject.Parse(message).IsValid(messageSchema))
                    {
                        MessageEvent messageEvent = JsonConvert.DeserializeObject <MessageEvent>(message);

                        MessagesEventsFunc(messageEvent);
                    }

                    if (JObject.Parse(message).IsValid(openCorrSchema))
                    {
                        OpenCorrespondence openCorrespondence = JsonConvert.DeserializeObject <OpenCorrespondence>(message);
                        int[] ids_rec = new int[1];
                        ids_rec[0] = id;
                        server.BroadcastMessage(AfterOpenChat(openCorrespondence), ids_rec);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                server.RemoveConnection(this.id);
                Close();
            }
        }
Beispiel #26
0
        /// <summary>
        /// В методе Process реализован простой протокол для обмена сообщениями с клиентом.
        /// Так, как в начале получаем имя подключенного пользователя, а затем, в цикле получаем все остальные сообщения.
        /// Для трансляции сообщений всем пользователям используется метод BroadcastMessage() класса ServerObject.
        /// </summary>
        public void Process()
        {
            try
            {
                // загружаем список доступных команд
                server.AddListTeams();

                Stream = client.GetStream();
                // получаем имя пользователя
                string message = GetMessage();
                userName = message;
                server.AddUserName(message);
                message = userName + " вошел в чат";
                // посылаем сообщение о входе в чат всем подключенным пользователям
                server.BroadcastMessage(message, this.Id);
                Console.WriteLine(message);
                // в бесконечном цикле получаем сообщения от клиента
                while (true)
                {
                    try
                    {
                        message = GetMessage();

                        if (message != "")
                        {
                            switch (message)
                            {
                            case "#Список доступных команд":
                                message = String.Format("{0}: {1}", "#BOT", server.DataBaseTeams());
                                Console.WriteLine(message);
                                server.MessageToSender(message, this.Id);
                                break;

                            case "#Список пользователей":
                                message = String.Format("{0}: {1}", "#BOT", server.DataBaseClients());
                                Console.WriteLine(message);
                                server.MessageToSender(message, this.Id);
                                break;

                            case "#Завершить чат":
                                Console.WriteLine(message);
                                server.RemoveConnection(this.Id);
                                Close();
                                break;

                            default:
                                message = String.Format("{0}: {1}", userName, message);
                                Console.WriteLine(message);
                                server.BroadcastMessage(message, this.Id);
                                break;
                            }
                        }
                    }
                    catch
                    {
                        message = String.Format("{0}: покинул чат", userName);
                        server.RemoveUserName(userName);
                        Console.WriteLine(message);
                        server.BroadcastMessage(message, this.Id);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // в случае выхода из цикла закрываем ресурсы
                server.RemoveConnection(this.Id);
                Close();
            }
        }