TipsShell: Ajouter connexion TCP

This commit is contained in:
Alexis Ben Miloud--Josselin 2024-03-04 17:04:35 +01:00
parent 0c0f9ceeaa
commit bfba1cc65f

View file

@ -844,3 +844,38 @@ $ bc
> 1B
27
~~~
### Tester une connexion TCP ou UDP
Si on a pas [`telnet(1)`](https://manpages.debian.org/bullseye/telnet/telnet.1.en.html) ou [`netcat(1)`](https://manpages.debian.org/bullseye/netcat-openbsd/netcat.1.en.html) sous la main, on peut utiliser `/dev/tcp` et `/dev/udp`. Par exemple, pour tester une connexion à Redis :
~~~{.bash}
$ exec 3<> /dev/tcp/127.0.0.1/6379
$ echo quit >&3
$ cat <&3
+OK
~~~
Un autre exemple avec HTTP :
~~~{.bash}
$ exec 3<> /dev/tcp/example.com/80
$ printf 'GET /index.html HTTP/1.1\r\nHost: example.com\r\n\r\n' >&3
$ cat <&3
HTTP/1.1 200 OK
[...]
~~~
Dans ces exemples, on écrit avec une commande, puis on lit avec une autre. Pour avoir un semblant d'interactivité, on peut exécuter le processus qui lit la réponse en arrière plan avant d'écrire. Par exemple avec Redis :
~~~{.bash}
$ exec 3<> /dev/tcp/127.0.0.1/6379
$ cat <&3 & cat >&3
[1] 31415
auth REDACTED
+OK
quit
+OK
^C
[1]+ Done cat 0<&3
~~~