Exemple #1
0
        public frmMain(string connectionName, string _IP, int _port)
        {
            InitializeComponent();

            client = new GDClient();
            client.ClientDataRetrieve += Client_ClientDataRetrieve;


            if (!client.Connect(_IP, _port))
            {
                MessageBox.Show("Failed to connect.");
                DialogResult = DialogResult.Abort;
                return;
            }
            Username = connectionName;
            client.StartRetrieve();
            client.Send(new ConnectionPacket(connectionName));

            this.Text += string.Format(" {0}", connectionName);
        }
Exemple #2
0
        private void Client_ClientDataRetrieve(GDClient sender, byte[] data)
        {
            Packet p = Packet.Load(data);

            if (!connected)
            {
                if (p.PacketType != enPacket.ConnectionSuccess)
                {
                    MessageBox.Show("Failed to connect.");
                    DialogResult = DialogResult.Cancel;
                    return;
                }
                else
                {
                    connected = true;
                    ID        = p.ReadInt();
                    return;
                }
            }
            switch (p.PacketType)
            {
            case enPacket.PlayerConnection:
                string name = p.ReadString();
                int    _id  = p.ReadInt();
                AddPlayer(name, _id);
                UpdateSingleStatus(_id, (PlayerStatus)p.ReadByte());
                break;

            case enPacket.DrawDot:
                Point po = p.ReadPoint();
                drawCanvas1.DrawDot(po, false);
                break;

            case enPacket.SetColor:
                Color c = p.ReadColor();
                drawCanvas1.DrawingBrush = new SolidBrush(c);
                brushPreview1.SetColor(c);
                break;

            case enPacket.ClearCanvas:
                drawCanvas1.ClearDraw();
                break;

            case enPacket.SetSize:
                int s = p.ReadInt();
                brushPreview1.SetSize(s);
                drawCanvas1.DrawingSize = s;
                break;

            case enPacket.ChatMessage:
                HandleMessage(p.ReadString(), p.ReadString());
                break;

            case enPacket.SetDrawStatus:
                SetDrawStatus(p.ReadBool());
                break;

            case enPacket.Disconnect:
                RemovePlayer(p.ReadInt());
                break;

            case enPacket.UpdateStatus:
                _id = p.ReadInt();
                PlayerStatus newStatus = (PlayerStatus)p.ReadByte();
                if (_id == -1)
                {
                    UpdateAllStatus(newStatus);
                }
                else
                {
                    UpdateSingleStatus(_id, newStatus);
                }
                break;

            case enPacket.WordInfo:
                SetDrawStatus(false);
                SetWordInfo(p.ReadInt());
                break;

            case enPacket.WordToDraw:
                SetDrawStatus(true);
                SetWord(p.ReadString());
                break;

            case enPacket.UpdateTimer:
                UpdateTimer(p.ReadInt());
                break;

            case enPacket.WinAnnounce:
                MessageBox.Show(p.ReadString());
                break;
            }
        }