我使用QTcpSocket创建了一个简单的telnet服务器。当(telnet)客户端一次发送一行命令时,它工作得很好。
我现在希望我的telnet服务器捕获向上/向下箭头键,以便我可以回忆起客户端以前的命令。当我在telnet客户端的键盘上按下/向下键时,我看到^ [[屏幕上的A,但我不认为它被发送到服务器。
有没有办法强制telnet客户端发送这些字符(无需按Enter键)?我怀疑这与无缓冲模式有关,但是文档说QTcpSocket不能做无缓冲模式。我是在正确的轨道上吗?有没有办法做到这一点?
答案 0 :(得分:2)
解决方案似乎是telnet服务器必须告诉客户端进入字符模式。这可以通过发送IAC控制序列来完成。这里有一个例子:
答案 1 :(得分:-1)
你告诉过你使用QTcpSocket
编写了一个telnet服务器而你没有说telnet客户端...是一个商业telnet客户端?你有自己编程吗?
如果你的问题是
“如何强制telnet客户端发送这些字符(没有 需要按回车键“”
然后你必须告诉我们telnet客户端...否则我们如何帮助你?如果您使用Linux命令行telnet客户端,那么我认为您应该阅读LINEMODE
(在网上冲浪,您可以很容易地了解它的详细信息)。
QTcpSocket
的文档告诉您无法在QIODevice::Unbuffered
模式下打开它,但这并不意味着您将无法发送/接收单个字符......