Пример #1
0
        // Протокол обработки запроса на отправку файла.
        public void Handle_Send()
        {
            // Массив для считывания ответа из потока.
            Byte[] data = new Byte[256];
            // Строка для имени файла.
            string name = string.Empty;
            Message mes = new Message(string.Empty);

            // Цикл ожидания ответа.
            while (true)
            {
                mes = NW.Recieve(stream);

                if (!(mes is ErrorMessage))
                {
                    name = mes.Get_Data();
                }
                else
                {
                    Console.WriteLine("Ending session");
                    Thread.CurrentThread.Abort();
                }
                // Отчет о начале передачи.
                Console.WriteLine("Handling thread: Start sending protocol for " + name);
                Thread h;
                lock (Server.ThisLlock)
                {
                    // Запуск передачи файла.
                    File_Translator FT = new File_Translator(client, name, Files, Hubs);
                    name = string.Empty;
                    h = new Thread(FT.Sending);
                    h.Start();

                // Ожидание конца передачи файла.
                h.Join();
                h.Abort();
                }
            }
        }
Пример #2
0
        // Протокол обработки запроса на получение файла.
        public void Handle_Recieve()
        {
            Message mes = new Message(string.Empty);
            // Строка для хранения имени запрашиваемого файла.
            string flnme = "";

            while (true)
            {
                // Получение имени файла.
                mes = NW.Recieve(stream);

                if (!(mes is ErrorMessage))
                {
                    flnme = mes.Get_Data();
                }
                else
                {
                    Console.WriteLine("Ending session");
                    Thread.CurrentThread.Abort();
                }
                // Отчет о начале передачи.
                Console.WriteLine("Handling thread: Start receiving protocol for " + flnme);

                Thread h;
                lock (Server.ThisLlock)
                {
                    // Запуск передачи файла.
                    File_Translator FT = new File_Translator(client, flnme, Files, Hubs);
                    h = new Thread(FT.Receiving);
                    h.Start();

                    // Ожидание окончания передачи.
                    h.Join();
                    h.Abort();
                    flnme = string.Empty;
                }
            }
        }