J'ai un client personnalisé qui se connecte à Ubuntu à distance via websocket et y exécute bash. Mais les touches comme Del, Flèches etc. ne fonctionnent pas. Comment puis-je afficher ce qui est reçu du côté du serveur ? Aucune des solutions mentionnées dans afficher les touches pressées sous linux travail.
UPDATE : J'ai d'abord posé une question sur SSH, mais j'ai ensuite réalisé que je n'utilisais probablement pas SSH.
UPDATE2 : Ce que j'ai essayé.
# showkey
Couldn't get a file descriptor referring to the console
# evtest
No device specified, trying to scan all of /dev/input/event*
USAGE:
Capture mode:
evtest [--grab] /dev/input/eventX
--grab grab the device for exclusive access
Query mode: (check exit code)
evtest --query /dev/input/eventX <type> <value>
<type> is one of: EV_KEY, EV_SW, EV_LED, EV_SND
<value> can either be a numerical value, or the textual name of the
key/switch/LED/sound being queried (e.g. SW_DOCK).
# ls /dev/input
ls: cannot access /dev/input: No such file or directory
# stty -a
speed 38400 baud; rows 300; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
En gros, j'ai besoin de quelque chose comme ça :
UPDATE3 : La communication entre le client et le serveur de la console se fait par le biais de websockets en Go. Sources - client y serveur .
0 votes
Vous avez donné la moitié de la question : nous ne savons pas ce que vous avez essayé et quel a été le résultat. Si vous étiez connecté en tant que (pseudo)terminal, la partie ctrl+V vous dirait quelque chose, tout comme "stty -a".
0 votes
Comment vous connectez-vous au serveur ? Vous connectez-vous au port 23 ? Cela signifie que vous utilisez telnet. Si vous ne savez pas si vous utilisez SSH ou telnet, je pense que vous avez eu les yeux plus gros que le ventre ! Ce que vous faites essentiellement en vous connectant de cette manière est d'écrire un émulateur de terminal. Vous devez prendre en charge tout ce qu'un émulateur de terminal doit prendre en charge. Par exemple, depuis une machine Windows, vous pouvez utiliser PuTTY pour vous connecter à une machine Unix distante. PuTTY est un émulateur de terminal, vous devez donc faire tout ce que fait PuTTY. Vous devez donc mettre en œuvre le protocole TELNET.
0 votes
@ThomasDickey, question modifiée.
0 votes
@Sam, le code est ici github.com/lxc/lxd/blob/ - il utilise des websockets.