Как клиент может общаться с другим клиентом, используя сокеты домена unix?

Используйте Ожидайте или его реализацию на другом языке (в настоящее время в Википедии есть их список). expect был разработан именно для такого рода задач автоматизации терминалов. Самый быстрый способ запустить эту автоматизацию - выполнить следующие действия:

autoexpect ssh user@sdf.org

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

0
06.06.2019, 00:35
1 ответ

Так вот в чем дело, думаю, я могу отвечать клиентам:

echo "this is the response" | nc -lk -U /my/fifo

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

Мое единственное предположение - иметь два сервера:

nc -lk -U /my/fifo1 | while read line; do

  # custom logic goes here

done > nc -lk -U /my/fifo2

, поэтому клиенты подключаются к:

echo '{"client_id":123}' | nc -U /my/fifo1 

nc -U /my/fifo2 | while read line; do

done; 

это выдает то, что я знаю о том, как доменные сокеты tcp и unix работают с Node.js и т. д., но я предполагаю, что с bash мы должны сделать это таким образом?

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

-1
28.01.2020, 05:04

Теги

Похожие вопросы