QtNetwork连接

1. Network.h

#include <QtNetwork>

class Network : public QWidget
{
    Q_OBJECT

public:
    NetworkPortTransmission(QWidget *parent = nullptr);
    ~NetworkPortTransmission();

public:
    void ConnectNet();
    void SendMessage();
    void ReceiveMessage();

public:
    QTcpSocket *tcpClient;
    QByteArray receviedMsg;

private:
    Ui::NetworkPortTransmission *ui;
};

2. Network.cpp

Network::Network(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Network)
{
    ui->setupUi(this);

    tcpClient = new QTcpSocket;
    tcpClient->abort();

    connect(tcpClient, &QTcpSocket::readyRead, this, &NetworkPortTransmission::ReceiveMessage);
}

       ConnectNet();

void Network::ConnectNet()
{
    QString ip = ui->lineEdit_ip->text();
    QString port = ui->lineEdit_port->text();

    if(ui->pushButton_connect->text() == "connect")
    {
        if(ip.isEmpty() && port.isEmpty())
        {
            LogMessage("ip or port is NULL");
        }
        else
        {
            tcpClient->connectToHost(ip, port.toInt());
        }
        if(!tcpClient->waitForConnected(1000))
        {
            LogMessage("Connection error, please check your network");
            return;
        }

        ui->lineEdit_ip->setEnabled(false);
        ui->lineEdit_port->setEnabled(false);
        ui->pushButton_connect->setText("disconnect");
        ui->pushButton_connect->setStyleSheet("color:green");
        LogMessage("connect success");
    }
    else
    {
        tcpClient->disconnectFromHost();
        if(tcpClient->state() == QAbstractSocket::UnconnectedState || tcpClient->waitForDisconnected(1000))
        {

            ui->lineEdit_ip->setEnabled(true);
            ui->lineEdit_port->setEnabled(true);
            ui->pushButton_connect->setText("connect");
            ui->pushButton_connect->setStyleSheet("color:black");
            LogMessage("disconnect success");
        }
    }
}

        SendMessage();

void NetworkPortTransmission::SendMessage()
{
    QString sendMessage = ui->lineEdit_sendMessage->text();
    tcpClient->write(QByteArray::fromHex(sendMessage.toLatin1()));
}

        ReceiveMessage() ;

void NetworkPortTransmission::ReceiveMessage()
{
    QByteArray msg = tcpClient->readAll();
    receviedMsg = msg.toHex().toUpper();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值