// Протокол обработки запроса на отправку файла. 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(); } } }
// Протокол обработки запроса на получение файла. 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; } } }