Пример #1
0
 public void Start()
 {
     channel = new TcpChannel(8080);
     ChannelServices.RegisterChannel(channel, false);
     RemotingConfiguration.RegisterWellKnownServiceType(typeof(SharedObject), "Work", WellKnownObjectMode.Singleton);
     ServerConsole.Print("Сервер запущен!");
 }
Пример #2
0
        public int Int()
        {
            task = obj.GetTask();

            if (task == null)
            {
                return(0);
            }

            dynamic Cl_Low, Cl_Up, Cl_fun, Cl_N;

            obj.GetData(task, out Cl_Low, out Cl_Up, out Cl_fun, out Cl_N);
            Console.Out.Write("Полученные данные:");

            Console.Out.Write("\nКоординаты отрезка:\n");
            ServerConsole.Print("Начало: {0}", Cl_Low);
            ServerConsole.Print("Конец: {0}", Cl_Up);

            ScriptEngine engine = Python.CreateEngine();
            ScriptScope  scope  = engine.CreateScope();

            //В вычислительном модуле python используется модуль random.py
            //он находится в IronPython.StdLib
            //для работы программы необходимо подключить папку с StdLib:
            var paths = engine.GetSearchPaths();

            //путь к папке
            paths.Add(@"D:\IronPython.StdLib.2.7.5\content\Lib");
            engine.SetSearchPaths(paths);

            //непосредственный запуск модуля
            engine.ExecuteFile("D://monte-carlo.py", scope);

            //теперь можно "разобрать" запущенный скрипт на части, вытаскивая из него необходимые функции и переменные
            //вытаскиваем интегрирующую функцию
            dynamic monte_carlo = scope.GetVariable("monte_carlo");

            dynamic result = monte_carlo(Cl_fun, Cl_Low, Cl_Up, Cl_N);

            obj.Finish(result);

            return(1);
        }
Пример #3
0
 public void Stop()
 {
     ChannelServices.UnregisterChannel(channel);
     ServerConsole.Print("Сервер остановлен!");
 }