public void Start() { channel = new TcpChannel(8080); ChannelServices.RegisterChannel(channel, false); RemotingConfiguration.RegisterWellKnownServiceType(typeof(SharedObject), "Work", WellKnownObjectMode.Singleton); ServerConsole.Print("Сервер запущен!"); }
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); }
public void Stop() { ChannelServices.UnregisterChannel(channel); ServerConsole.Print("Сервер остановлен!"); }