Skip to content

wiluite/ethernet-to-virtual-serial-port-by-socat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

ethernet-to-virtual-serial-port-by-socat

Допустим, вышел из строя один из последовательных портов (где-то на микрокомпьютере, etc ...). И нужно быстро его заменить на виртуальный последовательный порт (скажем, с именем /tmp/imyarek), обмен с которым по соблюдаемому протоколу будет вестись уже по Ethernet, etc.

Такое решение работать не будет:

socat -d -d tcp-listen:4444,reuseaddr,fork pty,link=/tmp/imyarek,b9600,raw,echo=0

Здесь создается сокет-сервер, слушающий на порту 4444 и устанавливающий клиентское соединение в момент подключения. Проблема в том, что виртуальный порт будет создан только после подключения клиента. А нас это не устраивает, так как он нам нужен с самого начала и до самого конца.

Работающее решение:

  1. Создание пары залинкованных постоянных виртуальных COM-портов
    socat -d -d pty,link=/tmp/vcom1,b115200,raw,echo=0 pty,link=/tmp/imyarek,b115200,raw,echo=0

  2. Соединение TCP сервера и "файла" Первого из вышесозданной пары
    socat -d -d tcp-listen:4444,reuseaddr,fork file:/tmp/vcom1

Проверка:

  1. Подключаем сетевого клиента:
    nc localhost 4444
    Сразу же печатаем данные и отправляем их по сети
  2. Ловим данные из сети:
    cat /tmp/imyarek
  3. Посылаем данные в сеть:
    echo "data1-data2-data3" > /tmp/imyarek
    Данные будут отображаться в той же консоли 'nc', где осуществлялась и их посылка

Готово!

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published