Это можно сделать с помощью nc
. Следующий фрагмент читает строку из порта 5000
и работает, some_command
если линия token
или some_other_command
если линия foo
. После того, как клиент отключается, nc
запускается снова.
while true; do nc -l 5000 | { while read line; do case "$line" in token ) some_command;; foo ) some_other_command;; esac done } done
Чтобы поговорить с ним, запустите nc localhost 5000
, а затем введите, например:
foo token whatever foo
Завершить с Ctrl+ Dили Ctrl+ C. Недостатком является то, что когда один клиент остается подключенным, другой не может подключиться. Чтобы свести к минимуму такие коллизии, вы можете отправить одну команду за раз и немедленно отключиться:
echo token | nc localhost 5000
или (в баш)
echo token > /dev/tcp/127.0.0.1/5000