コード例 #1
0
        private void SignInBut_Click(object sender, EventArgs e)
        {
            if ((textBox1.Text.Length != 0) && (textBox2.Text.Length != 0))
            {
                userName = textBox1.Text;
                string pass = textBox2.Text;
                try
                {
                    client = new TcpClient();
                    client.Connect(host, port);  //подключение клиента
                    stream = client.GetStream(); // получаем поток

                    CoreServer.Message tempMes   = new CoreServer.Message("connection", userName, "", "", null);
                    IFormatter         formatter = new BinaryFormatter();
                    formatter.Serialize(stream, tempMes);

                    tempMes = new CoreServer.Message("signIn", userName, pass, DateTime.Now.ToString(), null);
                    formatter.Serialize(stream, tempMes);
                    //Зпускаем новый поток для получения данных
                    receiveThread = new Thread(new ThreadStart(ReceiveMessage));
                    receiveThread.Start();
                }
                catch (Exception ex)
                {
                }
            }
        }
コード例 #2
0
        static void SendMessage(string message, string DateTime)//Метод отправки сообщения серверу
        {
            CoreServer.Message tempMes   = new CoreServer.Message("mess", yourName, message, DateTime, null);
            IFormatter         formatter = new BinaryFormatter();

            formatter.Serialize(stream, tempMes);
        }
コード例 #3
0
 //Трансляция подключенным пользователям
 protected internal void BroadcastMessage(CoreServer.Message message, string id)
 {
     FROM.onlineList(clients);
     message.OnlineUser = GetClients();
     for (int i = 0; i < clients.Count; i++)
     {
         if (clients[i].Id != id)                          // если id клиента не равно id отправляющего сообщение
         {
             IFormatter formatter = new BinaryFormatter(); //Сериализация объекта Mtssage в сетевой поток
             formatter.Serialize(clients[i].Stream, message);
         }
     }
 }
コード例 #4
0
        private void EndRegBut_Click(object sender, RoutedEventArgs e)
        {
            if ((Login.Text.Length != 0) && (Password.Text.Length != 0))//Проверка полей
            {
                userName = Login.Text;

                if (userName.Length < 3)
                {
                    MessageBox.Show("Слишком короткое имя!");
                }
                else
                {
                    string pass = Password.Text;

                    try
                    {
                        client = new TcpClient();
                        client.Connect(host, port);                                             //Подключение к хосту

                        stream = client.GetStream();                                            //Получение потока сети

                        tempMes = new CoreServer.Message("connection", userName, "", "", null); //Отправка сообщения на запрос подключения
                        formatter.Serialize(stream, tempMes);

                        tempMes = new CoreServer.Message("regg", userName, pass, DateTime.Now.ToString(), null);//Отправка сообщения на запрос регистрации
                        formatter.Serialize(stream, tempMes);


                        //Запускаем новый поток для получения сообщений
                        receiveThread = new Thread(new ThreadStart(ReceiveMessage));

                        receiveThread.Start(); //Старт потока
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
        }