コード例 #1
0
ファイル: NetMessaging.cs プロジェクト: MilyaZ/Chat
 public void Communicate()
 {
     if (cSocket != null)
     {
         Console.WriteLine("Начало общения...");
         EventComment?.Invoke("Начало общения...");
         while (true)
         {
             String d = ReceiveData();
             Parse(d);
         }
     }
 }
コード例 #2
0
ファイル: NetMessaging.cs プロジェクト: MilyaZ/Chat
        private void Parse(string s)
        {
            // КОМАНДА=ЗНАЧЕНИЕ (LOGIN=Иван)
            char[] sep = { '=' };
            var    cd  = s.Split(sep, 2);

            switch (cd[0])
            {
            case "LOGIN":
            {
                LoginCmdReceived?.Invoke(cd[0], cd[1]);
                break;
            }

            case "LOGIN1":
            {
                EventError?.Invoke(0);
                break;
            }

            case "MESSAGE":
            {
                MessageCmdReceived?.Invoke(cd[0], cd[1]);
                break;
            }

            case "MESSAGE1":
            {
                PrivateMessage?.Invoke(cd[0], cd[1]);
                break;
            }

            case "USERLIST":
            {
                UserListCmdReceived?.Invoke(cd[0], cd[1]);
                break;
            }

            case "START":
            {
                StartCmdReceived?.Invoke(cd[0], cd[1]);
                break;
            }

            case "ERROR":
            {
                EventComment?.Invoke("Нет пользователя");
                break;
            }
            }
        }
コード例 #3
0
ファイル: NetMessaging.cs プロジェクト: MilyaZ/Chat
        public String ReceiveData()
        {
            String res = "";

            if (cSocket != null)
            {
                var b = new byte[65536];
                Console.WriteLine("Ожидание данных...");
                EventComment?.Invoke("Ожидание данных...");
                var i = 0;
                do
                {
                    var cnt = cSocket.Receive(b);

                    Console.WriteLine("Получена порция данных №{0}", ++i);
                    EventComment?.Invoke("Получена новая порция данных");
                    var r = Encoding.UTF8.GetString(b, 0, cnt);
                    res += r;
                } while (res[res.Length - 1] != '\n');
                Console.WriteLine("Данные успешно получены");
                EventComment?.Invoke("Данные успешно получены");
            }
            return(res.Trim());
        }
コード例 #4
0
ファイル: NetMessaging.cs プロジェクト: MilyaZ/Chat
 public void SendData(String command, String data)
 {
     if (cSocket != null)
     {
         try
         {
             if (data.Trim().Equals("") || command.Trim().Equals(""))
             {
                 return;
             }
             var b = Encoding.UTF8.GetBytes(command + "=" + data + "\n");
             Console.WriteLine("Отправка сообщения...");
             EventComment?.Invoke("Отправка сообщения...");
             cSocket.Send(b);
             Console.WriteLine("Сообщение успешно отправлено!");
             EventComment?.Invoke("Сообщение успешно отправлено!");
         }
         catch (Exception ex)
         {
             Console.WriteLine("Не удалось отправить сообщение :(");
             EventComment?.Invoke("Не удалось отправить сообщение :(");
         }
     }
 }