| Виды программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Дайте Джаве свободу!, Открытое письмо в Sun (Компьютерра) javax.swing.JList, Помогите составить модель... :( java.util.LinkedList() сортировка... Вопрос не в тему Диалоговое окно в середине программы Help regexp в Jave, Мне нада не вогруг а внутри выражения JBOSS, проблемы с установкой.... Очистка поля при повторном вызове диалогового окна Получить значение любой системной переменной ОС Apache1.3+Tomcat324 через mod_jk Ajp13, Apache1.3+Tomcat324 через mod_jk Ajp13 По поводу wait(), notify(), вопрос RMI проблема с jsdk1.5 + IntelliJIDE Перспективные разработки от Sun на Java, Компьюлента: кадр дня C# это Java?, MS списал у Sun? Как Вы относитесь к курящим девушкам? Прежде чем задать вопрос, прочтите это! Документация и книги по Java, Давайте соберём ссылки работа с таймером..., реализация таймаутов чтения/записи в сок Таймер Событие срочно нужен JDBC драйвер для DBF, поделитесь если у кого-нить есть BeanBox Парсинг русского XML, Кодировка Java Cards, поиск Сгенерировать системное событие.., желательно без JNI.. Проблема с Cloneable getCmpStatus -> setCmpStatus, Где я мог ошибиться? Как присвоить каждое сообытие свою иконку в jTree Установка JBuilder5, Не могу установить: ошибка JVM ругается на ntdll Строка инициализации для конт. меню в дереве Обмен данными между приложениями Что такое Ant и зачем он нужен?, не разу не нужен был, просто интересно Модальное окно.., как?.. Файлы .jar .NET vs Java: Что перспективнее для web-разработок Forte, Вопрос по editor-у JCheckBox, vopros Формат типа double для Java, не совпадает с форматом double в Pascalе Крестики-нолики, Развлечение для javaпрограммеров Какая среда разработки для... Как изменить элементы в JComboBox В чем плюсы Java 2 ? java-xml-dtd, java-xml-dtd Зашифровать строку, RSA Где можно почитать о регулярных выражениях? Ftp Client Скрытие IP-адресса Как обойти такую проблему?, Проверка и автопереход курсора overrideRedirect, что за зверь? Классы в разных файлах или в одном? Вызов метода объекта из вложенного объекта Универсальный клиент., Помогите советом. MouseListener, Запутался в событиях Можно ли создать картинку на основе потока? Установка ASE12.5 проблема с JRE во время установ Проблемы с Tomcat Новые технологии в Java Инсталяция Ant Очистка поля в диалоговом окне! запрет вставки в качестве первого символа '0' Остановить поток Остановка потока Как Вы относитесь к курящим девушкам? Прежде чем задать вопрос, прочтите это! Документация и книги по Java, Давайте соберём ссылки Что содержат файлы .ipr and .iml?, В IDEA JNode операционная система на Java!, еще одна попытка Свойства Button Как обновить дерево (jTree)? |
Платные хостинги Раскрутка сайта Книги по программированию Ftp Client
- Подскажите пожлуйста как правильно делается такая вещь :есть у меня класс Ftp я хочу сделать методы isAlive() и itemList()я в другов класе проверяю ftp host на живучесть а потом есть ли он живой получаю список его ресурсов моя проблема состоит в том что в метод isAlive у меня boolean и возвращает true если живой и false если не живой соответственно тоесть получается такой код Код public boolean isAlive(String h, String u, String p){ host = h; user = u; password = p; try { FtpClient client = new FtpClient(); client.openServer(host); client.login(user, password); client.closeServer(); return true; } catch (IOException e) { return false; }}public Stringbuffer itemList(String h, String u, String p){ host = h; user = u; password = p; StringBuffer buf = new StringBuffer(); buff = null; int ch; try { FtpClient client = new FtpClient(); client.openServer(host); client.login(user, password); client.ascii(); TelnetInputStream tos = client.list(); while((ch = tos.read()) >= 0) buf.append((char)ch); tos.close(); client.closeServer(); return buff; } catch (IOException e) { return buff; }}highlightSyntax('javaQzN2Yw','java');тут в каждом методе открывается соединение с сервером а мне хочется чтобы это происходило один раз т.е как-то так Код открыли соединение если живой то получаем лист если нет то возвращаем false highlightSyntax('javaU5NjI1N','java'); - Так во-первых надо сделать эти методы у самого ftp-клиента. Он же наверняка какой-то коннект внутри себя хранит.Может для проверки жив ли клиент посылать какую-нибудь невинную команду типа pwd ?Т.е. ftp-клиент само собой при первом открытии реально открывает коннект. Но вот потом для проверки жив ли сервер просто посылает туда что-то простое и если ответ есть, то сервер жив, если же нет - на нет и суда нет.А для хранения открытых (проверенных недавно) серверов хранить некий пул ftp-клиентов.Понимаю, что может появится больше вопросов, чем ответов, но что-то ничего более приличного в голову пока не приходит. - Спасибо большое ! (пока вопросов нет )буду думать ! - сделал точно как Вы сказали все получилось а что Вы имеете ввиду под пулом ? локальную базу адресов ? - Пулом называют коллекцию (список, массив) объектов соединений, постоянно открытых и при необходимости программа может получить одно из соединений. При таком подходе экономяться ресурсы на создание соединения, что в свою очередь повышает быстродействие.Пул обычно организовывают как класс со статическими методами, обращаясь к которым можно в любой момент времени получить готовое соединение. - Спасибо !буду думать как это сделать - а нет ли у Вас ссылочки с примером как такие пулы реализовывать ? - Насчет ссылочки не знаю, но могу предложить сделанный "на скорую руку" классикКод class Pool { protected static TreeMap connections = null; public static FtpClient getFtpClient(String host, String user, String password) { FtpClient client = null; if (connections == null) { connections = new TreeMap(); client = new FtpClient(); client.openServer(host); client.login(user, password); connections.put(host, client); } else { FtpClient client = (FtpClient)connections.get(host); if (client == null) { client = new FtpClient(); client.openServer(host); client.login(user, password); connections.put(host, client); } } return client; }}highlightSyntax('javaWYwNWU','java');Здесь мы имеем коллекцию FTP-соединений, хранящихся в статической переменной connections и метод getFtpClient, который нам возвращает соединение. Тут надо еще продумать грамотную работу с синхронизацией доступа к пулу а также уничтожение соединений, но основная идея думаю понятна.P.S. Компилировать класс не пробовал, так что возможны ошибки. Тут главное идею понять, реализацию можешь по-своемому сделать. - Спасибо огромное за пример и разъяснение !попробую у себя сделать. |