private void MessageReceived(GameServer server, IProtocol message) { switch ((ProtocolDef)message.ProtocolId) { case ProtocolDef.g2e_getcardload_def: { g2e_getcardload protocol = message as g2e_getcardload; netcardload[] loads = new netcardload[protocol.nCardCount]; Array.Copy(protocol.Card, loads, loads.Length); server.UpdateNetworkLoad(loads); } break; case ProtocolDef.g2e_getnetinfo_def: { g2e_getnetinfo protocol = message as g2e_getnetinfo; netcardinfo[] infos = new netcardinfo[protocol.nCardCount]; Array.Copy(protocol.Card, infos, infos.Length); server.UpdateNetcardInfo(protocol.szHostName, protocol.szSystemName, infos); } break; default: break; } }