运用qt制作客户端及服务器页面

首先,我们可以先在qt里制作一个简单的服务器页面,可以如下图:

对于客户端端口及客户端地址改变该对象的名称,使之与接下来代码中所用的名称相对应。在这里,我将客户端端口的对象名设为portLineEdit,客户端地址的对象名为addressLineEdit;

注意:在写服务器和客户端时需要在.Pro文件中增加network。

 接下来在widget.cpp 文件中创建一个服务器对象,为了接下来客户端向它的连接。创建socket的连接。将获得的客户端的地址以及客户端的端口号,在服务器窗口上显示出来。

#include "widget.h"
#include "ui_widget.h"

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

    server = new QTcpServer;
    server->listen(QHostAddress::AnyIPv4,8888);

    connect(server,&QTcpServer::newConnection,this,&Widget::newCon);
}

void Widget::newCon()
{
    QTcpSocket *socket =server->nextPendingConnection(); //创建socket连接
    QHostAddress clientAddress = socket->peerAddress();
    quint16 clientPort=socket->peerPort();

    ui->addressLineEdit->setText(clientAddress.toString());
    ui->portLineEdit->setText(QString::number(clientPort));

    connect(socket,&QTcpSocket::readyRead,this,&Widget::dealData);
}

void Widget::dealData()
{
    QTcpSocket *socket=(QTcpSocket *)sender();  //通过该函数获得信号的发出者
    ui->textEdit->setText(QString(socket->readAll()));
}
Widget::~Widget()
{
    delete ui;
}

服务器写好后,我们将开始写客户端,同样的,一开始我们可以先制作一个简单的客户端页面:

同样的,客户端里文件也同样需要有network

在这里,对登录及取消按钮进行转到槽,分别实现他们的功能,在服务器地址栏输入自己想连接的服务器地址,在服务器端口号里输入想连接的服武器的端口号。进行以下代码的编写:

void Widget::on_loginButton_clicked()
{
    QHostAddress serverAddress(ui->addressLineEdit->text());
    quint16 serverPort = ui->portLineEdit->text().toShort();

    client->connectToHost(serverAddress,serverPort);
}

void Widget::on_canelButton_clicked()
{
    this->close();
}

具体实现如下图所示:

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 编写一个测试单片机的Qt上位机TCP客户端,可以分为以下几个步骤: 1. 创建一个Qt应用程序。首先,在Qt中创建一个新的项目,选择应用程序类型,并设置项目的名称和保存位置。然后,选择需要的模块(如Qt Widgets)并单击“下一步”完成项目的创建。 2. 设计上位机界面。在Qt的设计视图中,使用各种Qt控件设计出一个用户界面,用于显示和控制单片机与上位机的通信。例如,可以添加按钮、文本框和标签,用于发送和接收数据。 3. 实现TCP客户端。在Qt的代码视图中,使用Qt提供的网络模块实现TCP客户端,用于与单片机进行通信。可以使用QTcpSocket类来创建并管理TCP连接,并使用其提供的函数来发送和接收数据。 4. 连接单片机。在上位机界面的按钮点击事件中,使用TCP客户端发送数据到单片机。可以使用QTcpSocket的write函数发送数据,并使用waitForBytesWritten函数等待数据发送完成。 5. 接收单片机的响应。使用QTcpSocket的readyRead信号来接收单片机返回的数据。可以使用read函数读取接收到的数据,并将其显示在上位机界面上的文本框中。 6. 断开连接。在上位机界面的关闭事件中,使用QTcpSocket的disconnectFromHost函数断开与单片机的连接。 通过以上步骤,您可以编写一个测试单片机的Qt上位机TCP客户端。在使用前,请确保已经正确配置了单片机的网络设置,并且设置了正确的IP地址和端口号。 ### 回答2: 要编写一个测试单片机的QT上位机TCP客户端,需要以下步骤: 1. 首先,在QT中创建一个新的项目,并选择相应的QT版本。 2. 在项目中添加TCP客户端类,可以使用QTQTcpSocket类来实现。 3. 在TCP客户端类中,定义连接主机的IP地址和端口号。也可以将这些信息作为参数在使用时传递给客户端。 4. 编写连接单片机的函数。在函数中,创建QTQTcpSocket对象,并使用其connectToHost()函数连接到指定的主机和端口号。 5. 在连接成功后,可以使用QTcpSocket的信号和槽机制来读取和写入数据。例如,可以使用readyRead()信号来读取从单片机发送的数据,并使用write()函数向单片机发送数据。 6. 可以根据需要循环发送和接收数据,直到完成测试。 7. 在QT界面中,可以增加相应的按钮、文本框和标签来显示单片机发送和接收的数据。可以使用QT的信号和槽机制来更新界面上的数据。 8. 最后,可以将程序编译成可执行文件,并在QT界面上运行测试。 总结:编写一个测试单片机的QT上位机TCP客户端,需要在QT中创建一个TCP客户端类,并实现连接单片机、发送和接收数据的功能。还需要在QT界面中显示所发送和接收的数据。最后,将程序编译成可执行文件并进行测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值