2

Это должно быть простым, очень простым, но мне сложно с ним справиться.Есть ли 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 я ищу, но это так плохо документированы, что это почти непригодным для использования. Есть ли там другие клиенты? Мы бы даже рассмотрели коммерческое решение.

ответ

2
+0

Спасибо! Похоже, он может сделать именно то, что мне нужно. Он очень плохо документирован, но исходный код выглядит нормально. Мне нужно подождать, пока я вернусь в офис на следующей неделе, чтобы действительно проверить это. Благодарю. – gMale

+0

Давал это вчера, и это не сработало. Он жаловался, что сервер не соответствует требованиям RFC2217, что почти наверняка не соответствует действительности. Как документация, так и обработка ошибок являются плохими, поэтому единственный способ расшифровать проблему - пройти через код. Пока неясно, в чем проблема. Существуют ли другие клиенты java? – gMale

+0

@gmale Это единственный, кого я знаю. Кажется, я видел некоторые коммерческие. Вы можете пойти по этому маршруту, по крайней мере, получите поддержку. –

0

Все говорят о погоде, но никто ничего не делает об этом. - Mark Twain

Я оказался в одной лодке, ища клиентскую библиотеку Java RFC 2217 и не нашел ничего полезного. Поэтому я решил нанести удар.

Проверьте мой новый jvser проект и дайте мне знать, если вы найдете какие-либо ошибки или хотите присоединиться к этому усилию.