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; } }
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."); } }
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."); } }
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(); }
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; } }