使用QTcpSocket接收终端向上/向下键
Receive terminal up/down keys using QTcpSocket
我使用QTcpSocket创建了一个简单的telnet服务器。当(telnet)客户端一次只发送一行命令时,它非常有效。
我现在希望我的telnet服务器捕获向上/向下箭头键,这样我就可以从客户端调用以前的命令。当我在telnet客户端上按下键盘时,我会在屏幕上看到^[[A,但我认为它没有发送到服务器。
有没有办法强制telnet客户端发送这些字符(无需按enter键)?我怀疑这与无缓冲模式有关,但文档说QTcpSocket不能进行无缓冲模式。我走对了吗?有办法做到这一点吗?
解决方案似乎是telnet服务器必须告诉客户端进入字符模式。这可以通过发送IAC控制序列来完成。这里有一个例子:
强制telnet客户端进入字符模式
您告诉过您使用QTcpSocket
编程了一个telnet服务器,但您对telnet客户端只字未提。。。是商业telnet客户端吗?你自己编程了吗?
如果你的问题是
"如何强制telnet客户端发送以下字符(不需要按下回车键)"
然后你必须告诉我们telnet客户端的情况。。。否则我们能帮你什么?如果您使用Linux命令行telnet客户端,那么我认为您应该阅读有关LINEMODE
的内容(在网上冲浪时,您可以很容易地详细了解它)。
QTcpSocket
的文档告诉您不能在QIODevice::Unbuffered
模式下打开它,但这并不意味着您不能发送/接收单个字符。。。
相关文章:
- 如何在linux终端中同时编译和运行c++代码
- 终端不会为C++文件创建.exe文件吗
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- 用于窗口的 HID 终端
- 如何使用 QDatastream 通过 QTcpSocket 发送 QSqlQueryModel?
- 使用 ubuntu 终端在 c++ 上运行线程类的问题
- 写入文件 a.txt,而终端重定向到文件 b.txt
- QTcpSocket emulate netcat 'conversation'
- VSCode C++终端进程已终止,退出代码为:1
- 终端如何在 shell 提示符下以编程方式阻止退格,以便您无法在其上退格,例如 $ 表示 bash 或 C:\blah\>
- Mac os x app bundle 在下载并运行时崩溃,但在终端或更改 Info.plist 时运行良好
- QTcpSocket 在 RemoteHostClosedError 后重新连接到服务器时无法传输数据
- C printf 无法从终端按预期工作
- 如何在不丢失输出的情况下杀死/停止终端中正在运行的进程?
- 在 OSX 上打开 SDL 窗口时不要打开终端窗口
- 在终端中运行可执行文件与在Mac查找器中打开
- 使用QTcpSocket接收终端向上/向下键