Допустим, вышел из строя один из последовательных портов (где-то на микрокомпьютере, etc ...). И нужно быстро его заменить на виртуальный последовательный порт (скажем, с именем /tmp/imyarek), обмен с которым по соблюдаемому протоколу будет вестись уже по Ethernet, etc.
socat -d -d tcp-listen:4444,reuseaddr,fork pty,link=/tmp/imyarek,b9600,raw,echo=0
Здесь создается сокет-сервер, слушающий на порту 4444 и устанавливающий клиентское соединение в момент подключения. Проблема в том, что виртуальный порт будет создан только после подключения клиента. А нас это не устраивает, так как он нам нужен с самого начала и до самого конца.
-
Создание пары залинкованных постоянных виртуальных COM-портов
socat -d -d pty,link=/tmp/vcom1,b115200,raw,echo=0 pty,link=/tmp/imyarek,b115200,raw,echo=0
-
Соединение TCP сервера и "файла" Первого из вышесозданной пары
socat -d -d tcp-listen:4444,reuseaddr,fork file:/tmp/vcom1
- Подключаем сетевого клиента:
nc localhost 4444
Сразу же печатаем данные и отправляем их по сети - Ловим данные из сети:
cat /tmp/imyarek
- Посылаем данные в сеть:
echo "data1-data2-data3" > /tmp/imyarek
Данные будут отображаться в той же консоли 'nc', где осуществлялась и их посылка
Готово!