Создание виртуального последовательного порта через TCP

Я разрабатываю приложение, которое должно уметь писать на виртуальный последовательный порт и получают данные через тот же порт от удаленных клиентов по сети.

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

клиенты

клиент может установить TCP-соединение с сервером. Когда мы настраиваем клиент, мы должны предоставить IP-адрес сервера, tcp-порт (обычно 8080) и виртуальный COM-порт.

затем клиент автоматически попытается подключиться к серверу.

сервер

сервер имеет виртуальный COM-порт, тот же, который мы установили в конфигурации клиента (например, COM1). Когда приложение на сервере записывает данные в этот порт, данные должны быть отправлены всем клиентам, подключенным через tcp. Ответ от клиентов отправляется по TCP обратно на сервер, который может прочитать его по виртуальному последовательному порт.

вопрос

в windows я использовал виртуальный разъем последовательного портаhttp://www.eterlogic.com/Products.VSPE.html который сделал большую часть работы. Однако я хочу решить эту проблему на машинах linux.

мой вопрос в том, как я могу создать TCP-сервер с подключенным виртуальным последовательным портом и отправлять/получать данные через этот порт по TCP слушающим клиентам?

2 ответов


попробовать socat. Возможный сценарий:

socat  pty,link=/dev/virtualcom0,raw  tcp:192.168.254.254:8080&

socat создает TCP-соединение с 192.168.254.254:8080, так что все, что будет записано в /dev/virtualcom0, будет перенаправлено в 192.168.254.254: 8080 и наоборот.

другой подход можно использовать RFC2217 via ser2net на стороне Linux sever и драйвер RFC2217 на стороне Windows (например http://www.hw-group.com/products/hw_vsp/index_en.html версия одиночного порта). Вы также можете попытаться получить http://pyserial.sourceforge.net/ для работы с ser2net.


программное обеспечение поможет установить соединение сервера и клиента через TCP http://www.serial-com-port.com/

Я использую его для создания виртуальных последовательных сообщений по сети, но у меня есть реальный порт RS232 на компьютере. Поэтому я просто передаю данные по сети. Если вам также необходимо создать виртуальный COM на сервере, используйте драйвер виртуального последовательного порта.