编译环境:
vs2015+QT5.9
TCP连接
1、初始化QTcpSocket
2、建立接受数据的信号与槽连接
3、建立错误检查的信号与槽连接
4、连接服务器
5、接受数据、发送数据
6、断开连接
tcpSocket = new QTcpSocket(this); // 初始化
tcpSocket->abort(); // 立即中止当前的套接字连接,并且复位此连接,但并不丢弃正在写入寄存器的数据。
// 相关信号与槽
connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(readMessage()));
connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)),
this, SLOT(displayError(QAbstractSocket::SocketError)));
connect(tcpSocket, &QTcpSocket::connected, [this]()
{
QMessageBox::information(this, QString::fromLocal8Bit("连接提示"), QString::fromLocal8Bit("连接成功"));
});
tcpSocket->connectToHost((QHostAddress)(QString("192.168.1.14")), (quint16)5656); // 建立连接
//m_strMessage = QString::fromLocal8Bit(tcpSocket->readAll().data()); // 接受数据,显示中文等其他字符
QByteArray recbuf = tcpSocket->readAll().data(); // 接受数据,16进制显示,有问题
TextEdit_Show->insertPlainText(recbuf.toHex() + "\n"); // 显示接收到的数据
tcpSocket->write(LineEdit_Send->text().toLocal8Bit()); // 发送数据,可发送中文
tcpSocket->disconnectFromHost(); // 断开连接
几组数据传输示例图:
源码地址:https://download.csdn.net/download/bloke_come/10826415