Exemplo n.º 1
0
        void ListenForRequest()
        {
            while (ActiveListener)
            {
                string message = networkManager.ReceivePacket();
                if (message != "")
                {
                    Dictionary <string, string> receivedString =
                        networkManager.AnalysisReceiveString(message);

                    if (receivedString["ReceiverIP"] != networkManager.senderInfo.IPAddress ||
                        int.Parse(receivedString["ReceiverPort"]) != networkManager.senderInfo.port)
                    {
                        switch (receivedString["Type"].ToUpper())
                        {
                        case "HOST":
                            if (this.AlHost.IndexOf(receivedString["ReceiverName"]) != 1)
                            {
                                this.AlHost.Add(receivedString["ReceiverName"] + ":" + receivedString["ReceiverIP"] + ":" + receivedString["ReceiverPort"]);
                            }
                            break;
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        void ListenForRequest()
        {
            while (ActiveListener)
            {
                try
                {
                    Packet packet;
                    Dictionary <string, string> receivedString;
                    string message = networkManager.ReceivePacket();
                    networkManager.AnalysisReceiveString(message);
                    message        = networkManager.ReceivePacket();
                    receivedString =
                        networkManager.AnalysisReceiveString(message);



                    if (receivedString["ReceiverIP"] != networkManager.senderInfo.IPAddress ||
                        int.Parse(receivedString["ReceiverPort"]) != networkManager.senderInfo.port)
                    {
                        switch (receivedString["Type"].ToUpper())
                        {
                        case "FINDHOST":
                            packet = new Packet("HOST", "");
                            networkManager.receiverInfo = new NetworkInfo(receivedString["ReceiverName"], receivedString["ReceiverIP"], int.Parse(receivedString["ReceiverPort"]));
                            networkManager.SendPacket(packet);
                            break;

                        case "JOIN":

                            networkManager.receiverInfo = new NetworkInfo(receivedString["ReceiverName"], receivedString["ReceiverIP"], int.Parse(receivedString["ReceiverPort"]));
                            btnReady.Enabled            = true;

                            MessageBox.Show("Người chơi " + receivedString["ReceiverName"] + " đã kết nối");
                            this.ActiveListener = true;
                            tRec = new Thread(new ThreadStart(ListenForRequest));
                            tRec.IsBackground = true;
                            tRec.Start();
                            break;

                        case "CHAT":
                            lstChatBox.Items.Add(receivedString["ReceiverName"] + " :" + receivedString["Message"]);
                            lstChatBox.TopIndex = lstChatBox.Items.Count - 1;
                            break;

                        case "READY":
                            MessageBox.Show(receivedString["ReceiverName"] + " đã sẵn sàng chơi.");
                            this.isGuestReady = true;
                            if ((this.isReady) && (networkManager.role == NetworkManager.Role.Server))
                            {
                                StartGame();
                            }
                            break;

                        case "OUT":
                            MessageBox.Show("Máy bạn mất kết nối với " + receivedString["ReceiverName"], "Mất kết nối");
                            networkManager.Disconnect();
                            networkManager.Disconnect();

                            this.ActiveListener = false;
                            tRec = new Thread(new ThreadStart(ListenForRequest));
                            tRec.IsBackground = true;
                            tRec.Start();
                            break;

                        case "SENDED":

                            break;

                        case "MOVE":
                            //Thêm nước đi
                            break;

                        case "LOSE":
                            MessageBox.Show("Chúc mừng bạn đã thắng " + networkManager.receiverInfo.hostName);
                            panel1.Enabled = false;
                            break;

                        case "DRAW":

                            DialogResult drdraw = MessageBox.Show(networkManager.receiverInfo.hostName + " xin Hòa. Bạn đồng ý không ?", "XIN HÒA", MessageBoxButtons.OKCancel);
                            if (drdraw == DialogResult.OK)
                            {
                                packet = new Packet("DRAWOK", "");
                                networkManager.SendPacket(packet);
                                MessageBox.Show("Bạn đã Hòa với " + networkManager.receiverInfo.hostName + ". Cố gắng thêm nhé.");
                                panel1.Enabled = false;
                            }
                            else
                            {
                                packet = new Packet("DRAWCANCEL", "");
                                networkManager.SendPacket(packet);
                            }
                            break;

                        case "DRAWOK":
                            MessageBox.Show("Bạn đã Hòa với " + networkManager.receiverInfo.hostName + ". Cố gắng thêm nhé.");
                            panel1.Enabled = false;
                            break;

                        case "DRAWCANCEL":
                            MessageBox.Show(networkManager.receiverInfo.hostName + " không đồng ý HÒA.");
                            break;
                        }
                    }
                }
                catch
                {
                    if (networkManager.receiverInfo != null)
                    {
                        MessageBox.Show("Máy bạn đã mất kết nối với " + networkManager.receiverInfo.hostName, "Mất kết nối");
                    }
                    else
                    {
                    }
                }
            }
        }