QT的TcpSocket中,通过write方法传输数据,write的声明如下:
qint64 write(const char *data, qint64 len);
qint64 write(const char *data);
inline qint64 write(const QByteArray &data)
{ return write(data.constData(), data.size()); }
可见,write的参数应当为 char * 或者 QByteArray 。
可以结合 QByteArray 的 fromHex() 方法,将字符串以16进制发送出去
Q_REQUIRED_RESULT static QByteArray fromHex(const QByteArray &hexEncoded);
例如:
QByteArray buf("fb00ff");
socket->write(QByteArray::fromHex(buf));
获取文本编辑框 textEdit_Send 中的数据,并将其对应转换为 16进制 发送出去:
QString str1 = ui->textEdit_Send->toPlainText();
socket->write(QByteArray::fromHex(str1.toLatin1()));
找了好久才找到···