【问题标题】:QTcpSocket Telnet readyRead returns rubbishQTcpSocket Telnet readyRead 返回垃圾
【发布时间】:2015-01-25 18:18:52
【问题描述】:

我使用realterm telnet 到设备,它可以工作,但是当我尝试使用QTcpSocket 访问它时,我从套接字readAll() 得到垃圾数据,有什么问题???

   QObject::connect(&sock, SIGNAL(readyRead()), this, SLOT(readyRead()));

 void QTelnet::readyRead()
 {
QByteArray ba = sock.readAll();
    qDebug() << "Read:" << ba ;

  }

输出: “ÿýÿý ÿý#ÿý'”

更新:

我只调用了 sock.connectToHost("192.168.80.17", 23); 没有其他的 预期输出如下:

Linux 2.4.31 (NTP001) (26)

NTP001 登录:

【问题讨论】:

  • 这可能没问题,具体取决于发送到套接字的内容。
  • 请记住,在大多数情况下,Telnet 协商序列不是不可打印的字符,或者在这种情况下,它不是任何有意义的字符序列。
  • 但不知何故,当我登录时写入: void QTelnet::connected() { QByteArray ba("admin\r\nadmin\r\n"); sock.write(ba); qDebug()
  • 在调试器中放置一个断点,并以十六进制值查看结果。您收到的实际(不是字符)是什么?

标签: c++ qt sockets telnet


【解决方案1】:

如果您确定发送的数据是有效字符串,请尝试将它们转换为一个:

qDebug() << "Read:" << QString(ba);

否则,“垃圾”背后的原因可能很简单,只是连接客户端发送的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 2015-06-27
    • 2016-07-12
    • 1970-01-01
    相关资源
    最近更新 更多