Это должно быть простым, очень простым, но мне сложно с ним справиться.Есть ли Java-клиент, поддерживающий Telnet RFC2217 (для связи с COM-портами по сетевому соединению)?
Проблема
Я ищу проект с открытым исходным кодом, в Java, который будет осуществлять связь с использованием протокола RFC2217. Я не вижу недостатка в серверах терминалов Java RFC2217, но мне нужен клиент. Если все эти люди пишут серверы, кто-то должен написать своего клиента! Правильно? Я просто не могу найти один в java.
Контекст
У нас есть часть аппаратных средств (SeaLINK+16 Ultra), который физически подключен к дюжине последовательных устройств и принимает сетевые соединения TCP для управления ими. Это устройство подключено к сети с сервером, который имеет виртуальные COM-порты, которые наше приложение использует для связи с этими дюжинами устройств.
В принципе, наш сервер в конечном итоге отправляет сетевые данные этому устройству SeaLINK, и это устройство преобразует трафик TCP в COM-данные и передает его через последовательный порт на подключенные последовательные устройства. Для связи с сервером и устройством SeaLINK используется протокол, указанный в RFC2217.
Команды, которые необходимо отправлять на эти последовательные устройства, очень просты (Cisco IOS). Короткие строки, такие как «включить», «записать память», «перезагрузить» и т. Д.
Проблема заключается в том, что виртуальные COM-порты, разрешенные на нашем сервере, требуют наличия драйверов, которые являются ОГРОМНЫМ хлопотом для установки в Linux и не являются кросс- Платформа. Кроме того, наше приложение написано на Java, поэтому, если бы мы могли просто найти сетевой пакет java, который может «говорить на RFC2217», мы могли бы быстро решить наши проблемы, и наше приложение не обязательно должно было быть связано с драйверами.
Резюме
Все, что мне нужно сделать, это «обернуть» эти команды в TCP-пакетов, которые соответствуют RFC2217. Там должен быть Java-клиент, который предоставляет ему командную строку, и он открывает сокет и передает ваши символы в соответствии с RFC2217.
Смысл, мне не придется иметь дело с установкой драйверов или использованием виртуальных COM-портов локально. Все, что я должен был бы сделать, это запустить код по линии:
RFC2217Client magicJavaClient;
magicJavaClient.setServer("192.168.40.5");
magicJavaClient.setPort(4162);
magicJavaClient.connect();
magicJavaClient.send("enable");
magicJavaClient.send("write memory");
magicJavaClient.close();
Heck, я бы даже согласиться на то, что созданный виртуальный COM-порты локально - до тех пор, как все это Java. Что-то вроде этого COM Redirector - это именно то, что мне нужно, но это не в Java. Заранее благодарим за любые предложения!
Update
NVTCom кажется тип Java-клиент RFC2217 я ищу, но это так плохо документированы, что это почти непригодным для использования. Есть ли там другие клиенты? Мы бы даже рассмотрели коммерческое решение.
Спасибо! Похоже, он может сделать именно то, что мне нужно. Он очень плохо документирован, но исходный код выглядит нормально. Мне нужно подождать, пока я вернусь в офис на следующей неделе, чтобы действительно проверить это. Благодарю. – gMale
Давал это вчера, и это не сработало. Он жаловался, что сервер не соответствует требованиям RFC2217, что почти наверняка не соответствует действительности. Как документация, так и обработка ошибок являются плохими, поэтому единственный способ расшифровать проблему - пройти через код. Пока неясно, в чем проблема. Существуют ли другие клиенты java? – gMale
@gmale Это единственный, кого я знаю. Кажется, я видел некоторые коммерческие. Вы можете пойти по этому маршруту, по крайней мере, получите поддержку. –