嵌入式-基于qt的tcp/ip实现

qt聊天界面的实现

通过tcpip协议进行网络通信,通过qt框架进行搭建,有两个部分,客户端和服务器端,这里的qt设计是通过ui直接绘图(试了一下直接cpp,对于布局要求太高了)

首先要下载qtcreator

创建服务器端

首先进行新建工程

在这里插入图片描述
*

  • 然后点击上面那个new project
  • 在这里插入图片描述
  • 这里一定要点denerate form
    在这里插入图片描述
    然后工程就创建完成了

设计界面

在这里插入图片描述

  • 在左面分别选取textedit两个,buttons两个,还有一个弹簧,放置在界面中
  • 在这里插入图片描述
  • 然后点击左上角的在这里插入图片描述

就设计好了,上面的聊天框用于显示接收的信息,下面用于自己发信息,两个按钮分别是关闭和发送

然后对每个对象进行分别命名和其对应属性的改写
在这里插入图片描述

编写源码和头文件

改写工程文件

在这里插入图片描述

  • 点开项目文件,在最后加上一个

QT += core gui network

改写头文件
  • 先添加对应套接字的头文件
  • 然后创建两个指针,指针的话要动态分配空间
    在这里插入图片描述
改写源代码
  • 点开widget
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    //监听套接字,指定父对象自动回收空间,自动回收空间
    tcpSer = new QTcpServer(this);
    //对应的ip和端口
    tcpSer->listen(QHostAddress::Any,8888);
    //用lamda表达式
    connect(tcpSer,&QTcpServer::newConnection,
            [=]()
            {
                tcpsoc = tcpSer->nextPendingConnection();
                QString ip = tcpsoc->peerAddress().toString();
                qint16 port = tcpsoc->peerPort();\
                QString temp = QString("[]:成功链接").arg(ip).arg(port);
                ui->read->setText(temp);
            }
            );
    //通信套接字
    tcpsoc = new QTcpSocket(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_clicked()
{
    //获取链接内容然后发送
    QString str = ui->write->toPlainText();
    tcpsoc->write(str.toUtf8().data());
}

void Widget::on_send_clicked()
{
    close();
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值