Example #1
0
 /// <summary>
 /// Sends to the server if the player wants to join or watch a game
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void listViewAllRooms_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (listViewAllRooms.SelectedItems.Count > 0)
     {
         string player2_state = listViewAllRooms.SelectedItems[0].SubItems[4].Text;
         if (player2_state == "")
         {
             MsgToSend    = "join;" + listViewAllRooms.SelectedItems[0].SubItems[0].Name;
             PopUpMessage = new PopUpMessage("Waiting for response...");
             PopUpMessage.DisableButtons();
             PopUpMessage.Show();
             ClientSocket.Send(Encoding.ASCII.GetBytes(MsgToSend), 0, MsgToSend.Length, SocketFlags.None);
         }
         else
         {
             MsgToSend = "watch;" + listViewAllRooms.SelectedItems[0].SubItems[0].Name;
             ClientSocket.Send(Encoding.ASCII.GetBytes(MsgToSend), 0, MsgToSend.Length, SocketFlags.None);
         }
     }
 }
Example #2
0
 /// <summary>
 /// Awaits to recieve data from server and invokes convenient action
 /// </summary>
 private void RecieveFromServer()
 {
     while (EndConnectionFlag == 0)
     {
         CheckForIllegalCrossThreadCalls = false;
         try
         {
             byte[] MsgBt = new byte[1024];
             int    size  = ClientSocket.Receive(MsgBt);
             RecievedMsg = Encoding.ASCII.GetString(MsgBt, 0, size);
             string[] RecievedMsgArray = RecievedMsg.Split(';');
             //Create a room
             if (RecievedMsg.IndexOf("room") > -1)
             {
                 RoomForm roomForm = new RoomForm(ClientSocket, RecievedMsg, listboxCategory.SelectedItem.ToString(), listboxDifficulty.SelectedItem.ToString());
                 Invoke((MethodInvoker) delegate()
                 {
                     RecieveThread.Suspend();
                     this.Hide();
                     roomForm.Show();
                     roomForm.FormClosed += RoomForm_FormClosed;
                 });
             }
             //Joined a room
             if (RecievedMsg.IndexOf("joined") > -1)
             {
                 PopUpMessage.Close();
                 RoomForm roomForm = new RoomForm(ClientSocket, RecievedMsg, listViewAllRooms.SelectedItems[0].SubItems[1].Text, listViewAllRooms.SelectedItems[0].SubItems[2].Text);
                 Invoke((MethodInvoker) delegate()
                 {
                     gamer2 = RecievedMsgArray[2];
                     RecieveThread.Suspend();
                     this.Hide();
                     roomForm.Show();
                     roomForm.FormClosed += RoomForm_FormClosed;
                 });
             }
             //Watch a game
             if (RecievedMsg.IndexOf("Watch_game") > -1)
             {
                 RoomForm roomForm = new RoomForm(ClientSocket, RecievedMsg, listViewAllRooms.SelectedItems[0].SubItems[1].Text, listViewAllRooms.SelectedItems[0].SubItems[2].Text);
                 Invoke((MethodInvoker) delegate()
                 {
                     RecieveThread.Suspend();
                     this.Hide();
                     roomForm.Show();
                     roomForm.FormClosed += RoomForm_FormClosed;
                 });
             }
             //Show available rooms
             if (RecievedMsg.IndexOf("refresh") > -1)
             {
                 string AllRoomsSerialized = RecievedMsg.Split(';')[1];
                 ShowRooms(AllRoomsSerialized);
             }
             //Pressed wrong choice (Join/Watch)
             if (RecievedMsg.IndexOf("sorry") > -1)
             {
                 PopUpMessage.Close();
                 PopUpMessage = null;
                 PopUpMessage = new PopUpMessage("Sorry. This room is not available now.");
                 PopUpMessage.DisableButtons();
                 PopUpMessage.ShowDialog();
                 AvailableRooms();
             }
             //Owner refused the Join request
             if (RecievedMsg.IndexOf("refused") > -1)
             {
                 PopUpMessage.Close();
                 PopUpMessage = null;
                 PopUpMessage = new PopUpMessage("Sorry. Your request was declined.");
                 PopUpMessage.DisableButtons();
                 PopUpMessage.ShowDialog();
                 AvailableRooms();
             }
         }
         catch (EndOfStreamException)
         {
             MessageBox.Show("Connection ended. Server is down.");
             EndConnectionFlag = 1;
         }
         catch (IOException)
         {
             MessageBox.Show("Connection ended. Server is down.");
             EndConnectionFlag = 1;
         }
     }
 }