QT単純TCPクライアント
Demoダウンロード:http://www.demodashi.com/demo/16932.html
最近、3つのエンドの相互接続データトランシーバ、1つのデバイスクライアント、1つのサーバ、1つのPCクライアントを作ります.サーバーはJAVA言語で書かれていますが、PC側はQTで書くつもりです.QTは、とても使いやすいツール(個人的な感じ).JAVAを勉強しているので、やってみてもいいですが、C++ベースはやはりあります.あまり話さないで、直接コードをつけます.
最初にアイテム**.proファイルに追加
mainwindow.hコード
mainwindow.cpp
PS : このケースでは、QTでTCPクライアントを構築する方法について説明します.
最近、3つのエンドの相互接続データトランシーバ、1つのデバイスクライアント、1つのサーバ、1つのPCクライアントを作ります.サーバーはJAVA言語で書かれていますが、PC側はQTで書くつもりです.QTは、とても使いやすいツール(個人的な感じ).JAVAを勉強しているので、やってみてもいいですが、C++ベースはやはりあります.あまり話さないで、直接コードをつけます.
最初にアイテム**.proファイルに追加
QT += network
mainwindow.hコード
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
#include
#include
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
//
void ReadData();
void ReadError(QAbstractSocket::SocketError);
void SendTcpData(QString msg);
private:
Ui::MainWindow *ui;
QTcpSocket *tcpClient; //
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// TCP
tcpClient = new QTcpSocket(this); //
tcpClient->abort(); //
tcpClient->connectToHost("xxxxxIP ",xxxx ); //IP
connect(tcpClient, SIGNAL(readyRead()), this, SLOT(ReadData()));
connect(tcpClient, SIGNAL(error(QAbstractSocket::SocketError)),this, SLOT(ReadError(QAbstractSocket::SocketError)));
if (tcpClient->waitForConnected(30000)) //
{
qDebug() << " !" ;
}else{
qDebug() << " !" ;
}
}
MainWindow::~MainWindow()
{
delete this->tcpClient;
delete ui;
}
/**
*
*/
void MainWindow::ReadData()
{
QByteArray buffer = tcpClient->readAll();
if(!buffer.isEmpty())
{
qDebug() << " ->"+buffer ;
}
}
/**
*
*/
void MainWindow::ReadError(QAbstractSocket::SocketError)
{
qDebug() << " !" ;
tcpClient->disconnectFromHost();
}
/**
* @brief MainWindow::SendTcpData
* @param msg
*
*/
void MainWindow::SendTcpData(QString msg){
if(tcpClient->isOpen()){
QByteArray sendMessage = msg.toUtf8();
tcpClient->write(sendMessage);
tcpClient->flush();
}
}
PS : このケースでは、QTでTCPクライアントを構築する方法について説明します.