編譯環境:
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