У меня есть сервер с 8 COM-портами, который я хотел бы сделать доступным через TCP-порты. Я провел немало исследований и перепробовал множество решений, в том числе ser2net и т.д. Все они, к сожалению, не поддерживают несколько одновременных соединений, я хочу иметь возможность подключить более одного клиента к каждому порту.

Я использую виртуальную машину, поэтому я открыт для любой ОС, но надеялся использовать легкий дистрибутив Linux.

Спасибо за любую помощь, спасибо

1 ответ1

1

Не совсем понятно, что вы хотите сделать, но возможно, что socat позволит вам получить доступ к последовательному порту на одном компьютере через соединение TCP с другого компьютера.

См. Пример для удаленного TTY (TTY OVER TCP) с использованием SOCAT

У вас есть хост с некоторым последовательным устройством, таким как модем или интерфейс Bluetooth (модем-сервер). Вы хотите использовать это устройство на другом хосте. (Клиент)

1) на модемном сервере запускается процесс, который принимает сетевые соединения и связывает их с последовательным устройством /dev /tty0:

$ socat tcp-l:54321,reuseaddr,fork file:/dev/tty0,nonblock,waitlock=/var/run/tty0.lock

2) на клиенте запускается процесс, который создает псевдотерминал и связывает его с tcp-соединением с сервером модема:

$ socat pty,link=$HOME/dev/vmodem0,waitslave tcp:modem-server:54321

socat поддерживает разветвление и имеет другие функции, которые могут быть полезны для достижения нескольких одновременных соединений.

В приведенном выше примере предполагается, что у вас есть клиентское приложение, которое работает с последовательным соединением, клиентский экземпляр socat предоставляет локальный конец ретранслятора для локального виртуального последовательного порта на удаленный реальный последовательный порт.

Если у вас есть приложение, которое не ожидает локальный последовательный порт, но напрямую связывается по TCP, вам не понадобится локальный экземпляр socat.

Для нескольких последовательных портов вы можете запустить несколько экземпляров socat, каждый из которых может обрабатывать несколько последовательных соединений.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .