private void Frm_Chessboard_Shown(object sender, EventArgs e) { frmClient.Format_ListV(listView_Battle, imageList2); frmClient.Data_List(listView_Battle, Publec_Class.UserName, Publec_Class.Fraction.ToString(), Publec_Class.CaputID.ToString()); label_N.Text = Publec_Class.UserName; label_F.Text = Publec_Class.Fraction.ToString(); pictureBox_C.Image = null; if (Publec_Class.UserSex == 0) { pictureBox_C.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\男人.png"); } else { pictureBox_C.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\女人.png"); } GIP = ClientClass.GameIP.Trim();//IP地址 if (GIP == "") { pictureBox2.Enabled = false; //label_Genre.Text = GIP; pictureBox_Left.Image = null; pictureBox_Right.Image = null; if (Publec_Class.UserSex == 0) { pictureBox_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\男人.png"); } else { pictureBox_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\女人.png"); } label_Right.Text = Publec_Class.UserName; pictureBox_Q_Right.Image = null; pictureBox_Q_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\黑棋.png"); this.pictureBox2.Image = null; this.pictureBox2.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\开始按钮灰.png"); this.pictureBox2.Enabled = false; } else { GetGameInfo(ClientClass.GameIP); ClassMsg temMsg = new ClassMsg(); ClassUsers Users = new ClassUsers(); ClassUserInfo UserItem = new ClassUserInfo();//创建并引用ClassUserInfo类 pictureBox_Left.Image = null; if (Publec_Class.UserSex == 0) { pictureBox_Left.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\男人.png"); } else { pictureBox_Left.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\女人.png"); } pictureBox_Q_Left.Image = null; pictureBox_Q_Left.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\白棋.png"); label_Left.Text = Publec_Class.UserName; pictureBox_Right.Image = null; if (Gem_S == 0) { pictureBox_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\男人.png"); } else { pictureBox_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\女人.png"); } label_Right.Text = Gem_N; pictureBox_Q_Right.Image = null; pictureBox_Q_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\黑棋.png"); frmClient.Data_List(listView_Battle, Gem_N, Gem_F.ToString(), Gem_C.ToString()); temMsg.sendKind = SendKind.SendCommand; temMsg.msgCommand = MsgCommand.GetGameF; temMsg.RIP = GIP; //原来是11000 udpSocket1.Send(IPAddress.Parse(Publec_Class.ServerIP), 11001, new ClassSerializers().SerializeBinary(temMsg).ToArray()); this.pictureBox2.Image = null; this.pictureBox2.Enabled = true; this.pictureBox2.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\开始按钮.png"); UserItem.UserIP = Publec_Class.ClientIP; //记录用户的IP地址 UserItem.UserPort = Publec_Class.ServerPort; //记录端口号 UserItem.UserName = Publec_Class.UserName; //记录用户名称 UserItem.Fraction = Publec_Class.Fraction.ToString(); //当前分数 UserItem.Caput = Publec_Class.CaputID.ToString(); //头像 UserItem.Sex = Publec_Class.UserSex.ToString(); //性别 Users.add(UserItem); //将单用户信息添加到用户列表中 pictureBox2.Enabled = true; ThreadStart ts = new ThreadStart(this.StartServer); mainThread = new Thread(ts); mainThread.Name = "GOB_Chess"; LineName = mainThread.Name; mainThread.Start(); temMsg.Data = new ClassSerializers().SerializeBinary(Users).ToArray();//将用户列表写入到二进制流中 temMsg.msgCommand = MsgCommand.BeginJoin; udpSocket1.Send(IPAddress.Parse(GIP), 11001, new ClassSerializers().SerializeBinary(temMsg).ToArray()); StartListen = true; ConnHandle = 1; } panel_Check.Click += new EventHandler(asd); CanDown = false; for (int i = 0; i < 15; i++) { for (int j = 0; j < 15; j++) { note[i, j] = -1; } } }
private void DataArrival(byte[] Data, System.Net.IPAddress Ip, int Port) //当有数据到达后的处理进程 { try { ClassMsg msg = new ClassSerializers().DeSerializeBinary((new System.IO.MemoryStream(Data))) as ClassMsg; switch (msg.msgCommand) { case MsgCommand.UserList: //进入大厅获取在线用户列表 { frmClient.Format_ListV(listView_user, imageList2); GetUserList(Data, Ip, Port); break; } case MsgCommand.Close: //退出大厅 { udpSocket1.Active = false; this.Close(); break; } case MsgCommand.ComeToHallH: { frmClient.Data_List(listView_user, msg.UserName, msg.Fraction.ToString(), msg.CPhoto.ToString()); break; } case MsgCommand.ExitToHall: { frmClient.ReMove_List(listView_user, msg.UserName); break; } case MsgCommand.BeginToGameL: { Frm_Chessboard FrmChessboard = new Frm_Chessboard(); if (FrmChessboard.ShowDialog() == DialogResult.OK) { //frmClient.Format_ListV(listView_user, imageList2); ClassMsg msg1 = new ClassMsg(); msg1.AreaMark = Publec_Class.TAreaM.ToString(); msg1.RoomMark = Publec_Class.TRoomM.ToString(); msg1.RIP = PubClass.MyHostIP(); msg1.RPort = Publec_Class.ServerPort; msg1.SIP = Publec_Class.ServerIP; msg1.SPort = "11000"; msg1.sendKind = SendKind.SendCommand; msg1.msgCommand = MsgCommand.ComeToHall; msg1.CPhoto = Publec_Class.CaputID; //发送消息 udpSocket1.Send(IPAddress.Parse(Publec_Class.ServerIP), 11000, new ClassSerializers().SerializeBinary(msg1).ToArray()); msg.sendKind = SendKind.SendCommand; msg.msgCommand = MsgCommand.EndToGame; udpSocket1.Send(IPAddress.Parse(Publec_Class.ServerIP), 11000, new ClassSerializers().SerializeBinary(msg).ToArray()); } break; } case MsgCommand.ExitToArea: { if (Convert.ToInt32(msg.AreaMark) == Publec_Class.TAreaM && Convert.ToInt32(msg.RoomMark) == Publec_Class.TRoomM) { frmClient.ReMove_List(listView_user, msg.UserName); } break; } case MsgCommand.BeginToGameH: { frmClient.AddDeskMsg(flowPanel_Oppose, msg, imageList1, Ip.ToString(), msg.msgCommand); break; } case MsgCommand.EndToGameH: { frmClient.AddDeskMsg(flowPanel_Oppose, msg, imageList1, Ip.ToString(), msg.msgCommand); PressGame = false; break; } case MsgCommand.EndRival: { frmClient.Game_TerraInfo(Data); break; } case MsgCommand.ComeToSay: { frmClient.AddMsgText(RTB_Dialog, msg, msg.msgCommand); break; } } } catch { } }
private void Frm_Chessboard_Shown(object sender, EventArgs e) { frmClient.Format_ListV(listView_Battle, imageList2); //对用户列表进行初始化 //将当前用户的信息添加到用户列表中 frmClient.Data_List(listView_Battle, Publec_Class.UserName, Publec_Class.Fraction.ToString(), Publec_Class.CaputID.ToString()); label_N.Text = Publec_Class.UserName; //显示当前用户的名称 label_F.Text = Publec_Class.Fraction.ToString(); //显示当前用户的分数 pictureBox_C.Image = null; //清空当前用户的头像 if (Publec_Class.UserSex == 0) //如果当前用户是男性 { pictureBox_C.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\男人.png"); } else { pictureBox_C.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\女人.png"); } GIP = ClientClass.GameIP.Trim(); //获取对方玩家的相关信息 if (GIP == "") //如果为空,表示只有自已进入该桌 { pboxStart.Enabled = false; //使“开始”按钮不可用 pictureBox_Left.Image = null; //清空对决双方的头像图片 pictureBox_Right.Image = null; if (Publec_Class.UserSex == 0) //如果当前用户是男性 { pictureBox_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\男人.png"); } else { pictureBox_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\女人.png"); } label_Right.Text = Publec_Class.UserName; //显示当前用户的名称 pictureBox_Q_Right.Image = null; //清空显示棋子类型的图片 //显示当前用户为黑棋 pictureBox_Q_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\黑棋.png"); pboxStart.Image = null; //清空“开始”按钮 //使“开始”按钮为灰度显示 pboxStart.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\开始按钮灰.png"); pboxStart.Enabled = false; //使“开始”按钮不可用 } else { GetGameInfo(ClientClass.GameIP); //获取对方玩家的相关信息 ClassMsg temMsg = new ClassMsg(); ClassUsers Users = new ClassUsers(); ClassUserInfo UserItem = new ClassUserInfo(); //创建并引用ClassUserInfo类 pictureBox_Left.Image = null; //清空当前用户的头像 if (Publec_Class.UserSex == 0) //如果当前用户是男性 { pictureBox_Left.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\男人.png"); } else { pictureBox_Left.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\女人.png"); } pictureBox_Q_Left.Image = null; //清空当前用户的棋子类型 //显示当前用户的棋子类型为白棋 pictureBox_Q_Left.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\白棋.png"); label_Left.Text = Publec_Class.UserName; //显示当前用户的名称 pictureBox_Right.Image = null; //清空对方玩家的头像 if (Gem_S == 0) //如果对方玩家是男性 { pictureBox_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\男人.png"); } else { pictureBox_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\女人.png"); } label_Right.Text = Gem_N; //显示对方玩家的名称 pictureBox_Q_Right.Image = null; //清空对方玩家的棋子类型 pictureBox_Q_Right.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\黑棋.png"); //将对方玩家的信息显示在用户列表中 frmClient.Data_List(listView_Battle, Gem_N, Gem_F.ToString(), Gem_C.ToString()); temMsg.sendKind = SendKind.SendCommand; temMsg.msgCommand = MsgCommand.GetGameF; temMsg.RIP = GIP; //原来是11000 udpSocket1.Send(IPAddress.Parse(Publec_Class.ServerIP), 11001, new ClassSerializers().SerializeBinary(temMsg).ToArray()); pboxStart.Image = null; //清空“开始”按钮 pboxStart.Enabled = true; //使“开始”按钮可用 //加载“开始”按钮的可用图片 pboxStart.Image = Image.FromFile(ClientClass.ImaDir + "\\Image\\开始按钮.png"); UserItem.UserIP = Publec_Class.ClientIP; //记录用户的IP地址 UserItem.UserPort = Publec_Class.ServerPort; //记录端口号 UserItem.UserName = Publec_Class.UserName; //记录用户名称 UserItem.Fraction = Publec_Class.Fraction.ToString(); //当前分数 UserItem.Caput = Publec_Class.CaputID.ToString(); //头像 UserItem.Sex = Publec_Class.UserSex.ToString(); //性别 Users.add(UserItem); //将单用户信息添加到用户列表中 pboxStart.Enabled = true; ThreadStart ts = new ThreadStart(this.StartServer); //开启服务 mainThread = new Thread(ts); mainThread.Name = "GOB_Chess"; LineName = mainThread.Name; mainThread.Start(); //连接服务 //将用户列表写入二进制流中 temMsg.Data = new ClassSerializers().SerializeBinary(Users).ToArray(); temMsg.msgCommand = MsgCommand.BeginJoin; //设置发送的消息命令 //将当前用户的信息发送给对方玩家 udpSocket1.Send(IPAddress.Parse(GIP), 11001, new ClassSerializers().SerializeBinary(temMsg).ToArray()); StartListen = true; ConnHandle = 1; } panel_Check.Click += new EventHandler(asd); //加载棋盘的单击事件 CanDown = false; for (int i = 0; i < 15; i++) //对棋子的记录位置进行初始化 { for (int j = 0; j < 15; j++) { note[i, j] = -1; } } }