Exemple #1
0
 public void RemovefromToList(object temp)
 {
     if (temp is CPacket.UserInSession)
     {
         CPacket.UserInSession usertoremove = new CPacket.UserInSession();
         usertoremove        = temp as CPacket.UserInSession;
         hostInSession[next] = usertoremove.hostIp;
         //if(usertoremove.user1 == login.user_id || usertoremove.user2 == login.user_id)
         //{
         Connected.Items.Remove(usertoremove.user1);
         Connected.Items.Remove(usertoremove.user2);
         //}
         //else
         //{
         PeopleInSession.Items.Add(usertoremove.user2 + "--->" + usertoremove.user1);
         //}
         next++;
     }
 }
Exemple #2
0
        }//Start Button

        public void AddToList(object temp)
        {
            if (temp is string)
            {
                string user = temp as string;

                UserBox.Items.Add(user);
            }
            if (temp is CPacket.LogOutUser)
            {
                CPacket.LogOutUser user = new CPacket.LogOutUser();
                user = temp as CPacket.LogOutUser;
                UserBox.Items.Remove(user.UsersDisconnected);
            }
            if (temp is CPacket.AcceptRequestGame)
            {
                CPacket.AcceptRequestGame list = new CPacket.AcceptRequestGame();
                list = temp as CPacket.AcceptRequestGame;
                CPacket.UserInSession listInSession = new CPacket.UserInSession();
                listInSession.user1  = list.requested_ID;
                listInSession.user2  = list.requester_ID;
                listInSession.hostIp = list.requester_IP;
                UserBox.Items.Remove(list.requested_ID);
                UserBox.Items.Remove(list.requester_ID);
                //Session[ListNumber].hostIp = list.requester_IP;
                //Session[ListNumber].HostPlayer = list.requester_ID;

                UserInSession.Items.Add(list.requester_ID + "-----> " + list.requested_ID);
                for (int x = 0; x < NextLocation; x++)
                {
                    //if (AllSockets[x].user_id != list.requested_ID && AllSockets[x].user_id != list.requester_ID)
                    //{
                    formatter.Serialize(AllSockets[x].ConnStream, listInSession);
                    //}
                }
                //ListNumber++;
            }
        }
Exemple #3
0
        public void ListenProcedure()
        {
            object temp;

            //object UserList;
            try
            {
                while (true)
                {
                    temp = formatter.Deserialize(Connectstream);
                    PictureBoxState.Image = ClientList.Images[1];//change icons
                    if (temp is CPacket.LoginPacket)
                    {
                        if (Connected.InvokeRequired)
                        {
                            BeginInvoke(new kdelegate(AddToList), ((CPacket.LoginPacket)temp).user_id, 1);
                        }
                    }
                    //string user = ((CPacket.LoginPacket)temp).user_id;
                    if (temp is CPacket.LogOut)
                    {
                        MessageBox.Show("Server Full");
                        PictureBoxState.Image = ClientList.Images[0];
                        Connectstream.Close();
                    }
                    if (temp is CPacket.LogOutUser)
                    {
                        if (Connected.InvokeRequired)
                        {
                            BeginInvoke(new kdelegate(AddToList), ((CPacket.LogOutUser)temp).UsersDisconnected, 4);
                        }
                    }
                    if (temp is CPacket.UserInSession)
                    {
                        CPacket.UserInSession list = new CPacket.UserInSession();
                        list = temp as CPacket.UserInSession;
                        if (Connected.InvokeRequired)
                        {
                            BeginInvoke(new kdelegate1(RemovefromToList), list);
                        }
                    }
                    if (temp is CPacket.RequestGame)
                    {
                        CPacket.RequestGame whoasked;
                        whoasked = temp as CPacket.RequestGame;
                        RequestForm requestform = new RequestForm();
                        if (requestform.ShowDialog() == DialogResult.Yes)
                        {
                            CPacket.AcceptRequestGame RequestAccept = new CPacket.AcceptRequestGame();
                            RequestAccept.Response     = true;
                            RequestAccept.requested_ID = login.user_id;
                            RequestAccept.requester_ID = whoasked.requestedusers;
                            RequestAccept.requester_IP = whoasked.requestedusers_ip;
                            formatter.Serialize(Connectstream, RequestAccept);
                        }
                        else
                        {
                            CPacket.AcceptRequestGame RequestAccept = new CPacket.AcceptRequestGame();
                            RequestAccept.Response = false;
                            formatter.Serialize(Connectstream, RequestAccept);
                        }
                    }
                    if (temp is CPacket.StartGame)
                    {
                        hosting = new CPacket.StartGame();
                        hosting = temp as CPacket.StartGame;
                        if (hosting.Which == true)
                        {
                            //HostMode
                            Int32 port = 3006;
                            which = true;
                            //NewPack = new CPacket.GameData();
                            HostListener = new TcpListener(hosting.Host_IP, port);
                            HostListener.Start();


                            try
                            {
                                Hostconnection               = HostListener.AcceptSocket();
                                P2PConnectStream             = new NetworkStream(Hostconnection);//temporary Networkstream
                                pictureBoxRequestState.Image = ClientList.Images[1];
                                P2P = new Thread(new ThreadStart(PeerToPeerConnectionHost));
                                P2P.Start();
                                //AllThreads[NextLocation] = new Thread(new ParameterizedThreadStart(AreYouTalkingtome));
                                //AllThreads[NextLocation].Start(AllSockets[NextLocation]);
                            }
                            catch (SocketException e) { MessageBox.Show("No Communication"); }
                        }
                        else
                        {
                            //ClientMode
                            which = false;
                            //MessageBox.Show("Made it to peer to peer start game");
                            TcpClient Peer2Peer;
                            Peer2Peer = new TcpClient();
                            try
                            {
                                Peer2Peer.Connect(hosting.Host_IP, 3006);
                                P2PConnectStream = Peer2Peer.GetStream();
                                if (P2P == null || !P2P.IsAlive)
                                {
                                    pictureBoxRequestState.Image = ClientList.Images[1];
                                    P2P = new Thread(new ThreadStart(PeerToPeerConnectionClient));
                                    P2P.Start();
                                }
                            }
                            catch (SocketException error)
                            {
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(" Lost Connection Client");
                //PictureBoxState.Image = ClientList.Images[0];
            }
        }