Beispiel #1
0
        private void PeerToPeerConnectionClient()
        {
            object HostTemp;

            //NewPack.ChipColor = true;
            try
            {
                while (true)
                {
                    HostTemp = formatter.Deserialize(P2PConnectStream);
                    if (HostTemp is CPacket.Message)
                    {
                        CPacket.Message receptionMessage = new CPacket.Message();
                        receptionMessage = HostTemp as CPacket.Message;
                        if (Chat.InvokeRequired)
                        {
                            BeginInvoke(new kdelegate(AddToList), ((CPacket.Message)HostTemp).m_message, 2);
                        }
                        //MessageBox.Show(receptionMessage.m_message);
                    }
                    if (HostTemp is CPacket.LogOut)
                    {
                        CPacket.LogOut LogOut = new CPacket.LogOut();
                        LogOut = HostTemp as CPacket.LogOut;
                        MessageBox.Show(LogOut.UsersDisconnected + " disconnected");
                        P2PConnectStream.Close();
                        P2PConnectStream = null;
                    }
                    if (HostTemp is CPacket.GameData)
                    {
                        //CPacket.GameData ReceivedPacket = new CPacket.GameData();
                        NewPack = HostTemp as CPacket.GameData;

                        UpdateBoard(NewPack);
                    }
                    if (HostTemp is CPacket.Again)
                    {
                        //MessageBox.Show("You Lost");
                        //this.EraseBoard();
                        //CPacket.Again againReceived = new CPacket.Again();
                        //againReceived = HostTemp as CPacket.Again;
                        // if (againReceived.response == true)
                        // {
                        // this.GameDesign();

                        //}
                    }
                    if (HostTemp is CPacket.Losing)
                    {
                        MessageBox.Show("You Lost");
                    }
                }
            }
            catch (System.IO.IOException P2Perror)
            {
            }
        }
Beispiel #2
0
        public void UpdateBoard(CPacket.GameData temp)
        {//UPDATE BOARD
            int row = heights[temp.column];

            heights[temp.column]++;
            GamePicBox[temp.column, 5 - row].ocupied = true;
            if (temp.ChipColor == 0)
            {
                GamePicBox[temp.column, 5 - row].whichChip = 1;
                GamePicBox[temp.column, 5 - row].Image     = GameImageListe.Images[0];
            }
            else
            {
                GamePicBox[temp.column, 5 - row].whichChip = 2;
                GamePicBox[temp.column, 5 - row].Image     = GameImageListe.Images[1];
            }
        }//UPDATE BOARD
Beispiel #3
0
        /*-----------------------------Peer---To---Peer-------*/
        private void PeerToPeerConnectionHost()
        {
            object HostTemp;

            //NewPack.ChipColor = true;
            try
            {
                while (true)
                {
                    HostTemp = formatter.Deserialize(P2PConnectStream);
                    if (HostTemp is CPacket.Message)
                    {
                        CPacket.Message receptionMessage = new CPacket.Message();
                        receptionMessage = HostTemp as CPacket.Message;
                        if (Chat.InvokeRequired)
                        {
                            BeginInvoke(new kdelegate(AddToList), ((CPacket.Message)HostTemp).m_message, 2);
                        }
                        //MessageBox.Show(receptionMessage.m_message);
                    }
                    if (HostTemp is CPacket.LogOut)
                    {
                        CPacket.LogOut LogOut = new CPacket.LogOut();
                        LogOut = HostTemp as CPacket.LogOut;
                        MessageBox.Show(LogOut.UsersDisconnected + " disconnected");
                        if (P2PConnectStream != null || !P2P.IsAlive)
                        {
                            if (which == true)//hostmode
                            {
                                HostListener.Stop();
                                P2PConnectStream.Close();
                                P2PConnectStream = null;
                            }
                            if (which == false)
                            {
                                P2PConnectStream.Close();
                                P2PConnectStream = null;
                            }

                            //P2PConnectStream = null;
                            break;//makes the thread die
                        }
                    }
                    if (HostTemp is CPacket.GameData)
                    {
                        NewPack = HostTemp as CPacket.GameData;
                        UpdateBoard(NewPack);
                    }
                    if (HostTemp is CPacket.LoginPacket)
                    {
                        CPacket.LoginPacket Viewer = new CPacket.LoginPacket();
                        Viewer = HostTemp as CPacket.LoginPacket;
                        //formatter.Serialize()
                    }
                    if (HostTemp is CPacket.Again)
                    {
                        // MessageBox.Show("You Lost");

                        //CPacket.Again againReceived = new CPacket.Again();
                        //againReceived = HostTemp as CPacket.Again;
                        ////if (againReceived.response == true)
                        //{

                        // this.EraseBoard();
                        //.GameDesign();

                        //}
                    }
                    if (HostTemp is CPacket.Losing)
                    {
                        MessageBox.Show("You Lost");

                        //CPacket.Again againReceived = new CPacket.Again();
                        //againReceived = HostTemp as CPacket.Again;
                        ////if (againReceived.response == true)
                        //{

                        // this.EraseBoard();
                        //.GameDesign();

                        //}
                    }
                }
            }
            catch (System.IO.IOException P2Perror)
            {
                //System.Runtime.Serialization.SerializationException
            }
        }