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); }
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; } }