Создание виртуального последовательного порта через 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 на сервере, используйте драйвер виртуального последовательного порта.