示例#1
0
 public void Connect(string name, string roomCode)
 {
     try
     {
         Socket.Connect(IP);
         Messag mes = new Messag(101, name, roomCode);
         Send(mes.ToString());
     }
     catch
     {
         MessageBox.Show("Không thể kết nối tới server", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
 }
示例#2
0
 private void Btn_Click(object sender, EventArgs e)
 {
     if (clickRunable)
     {
         Button btn = sender as Button;
         int    i   = pnlHint.Controls.IndexOf(btn);
         Messag mes = new Messag(112, name, i.ToString());
         client.Send(mes.ToString());
         clickRunable = false;
     }
     else
     {
         MessageBox.Show("Xin lỗi chưa đến lượt của bạn.");
     }
 }
示例#3
0
        private void Btn_Click1(object sender, EventArgs e)
        {
            Button btn = sender as Button;

            if (btn.Text != String.Empty)
            {
                return;
            }
            if (clickRunable)
            {
                int    i   = pnlAnswer.Controls.IndexOf(btn);
                Messag mes = new Messag(111, name, i.ToString());
                client.Send(mes.ToString());
                clickRunable = false;
            }
            else
            {
                MessageBox.Show("Xin lỗi chưa đến lượt của bạn.");
            }
        }
示例#4
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            name     = tbxName.Text;
            roomCode = tbxRoom.Text;
            client.Connect(name, roomCode);

            Thread th = new Thread(() =>
            {
                while (true)
                {
                    String buff = client.Receive();

                    String[] str = buff.Split('$');
                    foreach (var item in str)
                    {
                        Messag mes = new Messag(item);
                        ProcessData(client.Socket, mes);
                    }
                }
            });

            th.IsBackground = true;
            th.Start();
        }
示例#5
0
        void ProcessData(Socket client, Messag mes)
        {
            switch (mes.Opcode)
            {
            case 201:
                AddMessage("Tham gia phòng thành công");
                break;

            case 202:
                AddMessage("Tham gia phòng thất bại");
                client.Close();
                break;

            case 203:
                int i = Convert.ToInt32(mes.Payload);
                switch (i)
                {
                case 1:
                    groupBox1.Text = mes.Sender;
                    if (name.Equals(mes.Sender))
                    {
                        groupBox1.Text += " (Me)";
                        myTurn          = 1;
                    }

                    break;

                case 2:
                    groupBox2.Text = mes.Sender;
                    if (name.Equals(mes.Sender))
                    {
                        groupBox2.Text += " (Me)";
                        myTurn          = 2;
                    }
                    break;

                case 3:
                    groupBox3.Text = mes.Sender;
                    if (name.Equals(mes.Sender))
                    {
                        groupBox3.Text += " (Me)";
                        myTurn          = 3;
                    }
                    break;
                }
                break;

            case 210:
                AddMessage("Trò chơi bắt đầu");
                break;

            case 211:
                lbQuestion.Text = mes.Payload;
                break;

            case 212:
                LoadQuestion(mes.Payload);
                LoadHint();
                break;

            case 221:
                AddMessage(mes.Sender + ": " + mes.Payload);
                OpenKeyword(Convert.ToInt32(mes.Payload));
                break;

            case 222:
                AddMessage(mes.Sender + ": " + mes.Payload);
                OpenHintword(Convert.ToInt32(mes.Payload));
                break;

            case 223:
                int turn = Convert.ToInt32(mes.Payload);
                SetTurn(turn);
                if (turn == myTurn)
                {
                    clickRunable = true;
                }
                else
                {
                    clickRunable = false;
                }
                break;
            }
        }