powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / FTP. Обработка ошибок соединения
4 сообщений из 4, страница 1 из 1
FTP. Обработка ошибок соединения
    #33395992
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет,
подскажите плз. как правильно решить задачу.
Имеем ФТП и работаем с ним. Единственное что осталось отладить это обработка ошибок соединения. Т.е. ситуация когда соединение по какой либо причине пропадает.
Я пытался моделировть ситуацию путем выдергивания сетевого кабеля. но программка просто виснет и никаких исключений не вываливается. Вот пример кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
 try  {
			FTPClient ftp= new  FTPClient();
                        ftp.connect(server);
			ftp.login(user, pass);
			ftp.enterLocalPassiveMode();
			ftp.changeWorkingDirectory(dir);
			FTPFile[] files = ftp.listFiles();

			File localFile;
			 for  ( int  i =  0 ; i < files.length ; i++) {
				 if  (files[i].isFile() && files[i].getName().endsWith(".txt")) {
					System.out
							.print(files[i].getName() + "\tобрабатывается\t");

					localFile =  new  File(files[i].getName());
					//скачиваем файл и записываем его в localFile
                                         ftp.retrieveFile(localFile.getName(),
							 new  BufferedOutputStream( new  FileOutputStream(
									localFile)));
					//корректируем содержимое файла
                                        new  TimeParser(localFile);
                                        
                                        //записываем скорректированный файл на сервер
					ftp.storeFile(localFile.getName(),  new  BufferedInputStream(
							 new  FileInputStream(localFile)));

					localFile.delete();
					
					System.out.println("ok.");
				}// end if
			}// end for
			ftp.disconnect();
			System.out.print("Work is done.");
		}  catch  (Exception e) {
			System.err.println("\nConnection error: \n"+e);
		}

Я пытася конечно проверять ftp.isConnected(), но в данном случае это не срабатывает.

спасибо за подсказку
...
Рейтинг: 0 / 0
FTP. Обработка ошибок соединения
    #33396319
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исключение при разрыве соединения возникает не сразу. У TCP соединений есть определенный таймаут, по истечении которого и возникнет соединение. Вам надо немножко подождать...
...
Рейтинг: 0 / 0
FTP. Обработка ошибок соединения
    #33396356
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совсем забыл... вы не устанавливаете таймаут для операций с данными. Добавьте setDataTimeout:

Код: plaintext
1.
2.
FTPClient ftp= new  FTPClient();
ftp.setDataTimeout(  [b]60000  ); [/b]// 60 секунд
ftp.connect(server);
...
Рейтинг: 0 / 0
FTP. Обработка ошибок соединения
    #33398649
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо,
поэксперементирую
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / FTP. Обработка ошибок соединения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]