Exemplo n.º 1
0
        public void Request(int step, int halfperiod, int degree)
        {
            ApproxyParameters intParams = new ApproxyParameters(step, halfperiod, degree);

            //отправляем значения для интегрирования на сервер
            formatter.Serialize(stream, intParams);

            //прием параметров для построения графа
            graphParams = (GraphParameters)formatter.Deserialize(stream);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            Calculation calculator = new Calculation();
            TcpListener server     = null;

            try
            {
                IPAddress localAddr = IPAddress.Parse("127.0.0.1");
                server = new TcpListener(localAddr, port);
                BinaryFormatter formatter = new BinaryFormatter();

                // запуск слушателя
                server.Start();

                while (true)
                {
                    Console.WriteLine("Ожидание подключения... ");

                    // получаем входящее подключение
                    TcpClient client = server.AcceptTcpClient();
                    // получаем сетевой поток для чтения и записи
                    NetworkStream stream = client.GetStream();
                    Console.WriteLine("Подключен клиент.\n");
                    try
                    {
                        while (true)
                        {
                            Console.WriteLine("Ожидание запроса...");

                            //получение параметров для интегрирования
                            ApproxyParameters intParams = (ApproxyParameters)formatter.Deserialize(stream);

                            Console.WriteLine("step: {0}\nhalfperiod: {1}\ndegree: {2}", intParams.GetStep.ToString(), intParams.GetHalfPeriod.ToString(), intParams.GetDegree.ToString());

                            //расчет данных для клиента
                            GraphParameters graphParams = calculator.CalcParams(intParams.GetStep, intParams.GetHalfPeriod, intParams.GetDegree);

                            //отправляем сообщение с расчитанными данными
                            formatter.Serialize(stream, graphParams);
                            Console.WriteLine("Выполнено.\n");
                        }
                    }
                    catch (Exception ex)
                    {
                        client.Close();
                        stream.Close();
                        Console.WriteLine("[EXCEPTION] {0}", ex.Message);
                        Console.WriteLine("Клиент отключился.\n");
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                if (server != null)
                {
                    server.Stop();
                }
            }
        }