Isso pode ser feito com nc
. O snippet a seguir lê as linhas da porta 5000
e executa some_command
se a linha for token
ou some_other_command
se a linha for foo
. Depois que o cliente se desconecta, nc
é executado novamente.
while true; do
nc -l 5000 | {
while read line; do
case "$line" in
token )
some_command;;
foo )
some_other_command;;
esac
done
}
done
Para conversar, execute nc localhost 5000
e digite, por exemplo:
foo
token
whatever
foo
Finalize com Ctrl + D ou Ctrl + C . A desvantagem é: quando um cliente fica conectado, nenhum outro pode se conectar. Para minimizar essas colisões, você pode enviar um comando por vez e desconectar imediatamente:
echo token | nc localhost 5000
ou (no Bash)
echo token > /dev/tcp/127.0.0.1/5000