VS2019+QT客户端服务端TCP通信

程序示例精选
VS2019+QT客户端服务端TCP通信
如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!

前言

这篇博客针对《VS2019+QT客户端服务端TCP通信》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。


运行结果


文章目录

一、所需工具软件
二、使用步骤
       1. 主要代码
       2. 运行结果
三、在线协助

一、所需工具软件

       1. VS2019
       2. QT

二、使用步骤

代码如下(示例):

#include <QFile>
#include <QFileInfo>
#include <QFileDialog>

#include<iostream>
using namespace std;

MainWindow::MainWindow(QWidget *parent)
	: QMainWindow(parent)
{

	ui.setupUi(this);


    //客户端
    socket = new QTcpSocket(this);
    //客户端

    //客户端文字发送
	QObject::connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(connectRun()));
    QObject::connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(on_btn_push_clicked()));
    //客户端文字发送结束

}

MainWindow::~MainWindow()
{
    delete this->socket;//回收内存
}

//客户端文字发送*********************************************
void MainWindow::connectRun()
{
    if (ui.pushButton->text() == tr("连接"))
    {
        QString ip = ui.lineEdit->text();//获取ip
        int port = ui.lineEdit_2->text().toInt();//获取端口数据
        //取消已有的连接
        socket->abort();
        //连接服务器
        socket->connectToHost(ip, port);
        bool isconnect = socket->waitForConnected();//等待直到连接成功
        //如果连接成功
        if (isconnect)
        {
            ui.textEdit->append("The connection was successful!!");
            ui.pushButton->setEnabled(true);//按钮使能
            ui.pushButton->setText("断开服务器连接");  //修改按键文字
            //接收缓冲区(服务器)信息
            connect(socket, &QTcpSocket::readyRead, this, &MainWindow::ReadData);
        }
        else
        {
            ui.textEdit->append("The connection falied!!");
        }
    }
    else
    {
        std::cout << "test_ " << std::endl;
        //断开连接
        socket->disconnectFromHost();
        ui.textEdit->append("The connection closed!!");
        ui.pushButton->setText("连接");
        ui.pushButton->setEnabled(true);//关闭发送按钮使能
    }

}


//接收缓冲区信息函数
void MainWindow::ReadData()
{
    QByteArray buf = socket->readAll();
    ui.textEdit->append(buf);
}
//发送按钮事件
void MainWindow::on_btn_push_clicked()
{
    QByteArray data = ui.textEdit_2->toPlainText().toUtf8();//获取lineEdit控件中的数据并发送给服务器
    socket->write(data);
    //判断是否写入成功
    qDebug() << "test_";
    bool iswrite = socket->waitForBytesWritten();
    qDebug() << "test_";
    if (iswrite)
    {
        qDebug() << "write sucessful";
        //写入成功
    }
    else
    {
        qDebug() << "write not sucessful";
        //没有写入成功
    }
}








运行结果

三、在线协助:

如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!

1)远程安装运行环境,代码调试
2)Visual Studio, Qt, C++, Python编程语言入门指导
3)界面美化
4)软件制作
5)云服务器申请
6)网站制作

当前文章连接:https://blog.csdn.net/alicema1111/article/details/132666851
个人博客主页https://blog.csdn.net/alicema1111?type=blog
博主所有文章点这里:https://blog.csdn.net/alicema1111?type=blog

博主推荐:
Python人脸识别考勤打卡系统:
https://blog.csdn.net/alicema1111/article/details/133434445
Python果树水果识别https://blog.csdn.net/alicema1111/article/details/130862842
Python+Yolov8+Deepsort入口人流量统计:https://blog.csdn.net/alicema1111/article/details/130454430
Python+Qt人脸识别门禁管理系统:https://blog.csdn.net/alicema1111/article/details/130353433
Python+Qt指纹录入识别考勤系统:https://blog.csdn.net/alicema1111/article/details/129338432
Python Yolov5火焰烟雾识别源码分享:https://blog.csdn.net/alicema1111/article/details/128420453
Python+Yolov8路面桥梁墙体裂缝识别:https://blog.csdn.net/alicema1111/article/details/133434445
Python+Yolov5道路障碍物识别:https://blog.csdn.net/alicema1111/article/details/129589741
Python+Yolov5跌倒检测 摔倒检测 人物目标行为 人体特征识别:https://blog.csdn.net/alicema1111/article/details/129272048

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Qt是一个跨平台的C++应用程序框架,它提供了丰富的库和工具来帮助开发者创建各种类型的应用程序,包括网络通信应用。 在Qt中实现TCP服务端客户端通信非常简单。首先,我们需要创建一个QTcpServer对象来作为服务端,该对象负责监听客户端的连接请求。接下来,我们需要为QTcpServer对象绑定一个IP地址和端口号,以便客户端能够连接到该地址和端口。当有新的客户端连接时,QTcpServer对象会发出newConnection()信号。 在服务端的槽函数中,我们可以使用QTcpServer的nextPendingConnection()函数获取新连接的QTcpSocket对象,该对象用于和客户端进行通信。我们可以在该对象上发送和接收数据,以实现服务端客户端之间的数据交互。 接下来,我们需要创建一个QTcpSocket对象作为客户端,该对象负责和服务端建立连接。我们需要使用connectToHost()函数来指定要连接的服务端IP地址和端口号。一旦连接成功,QTcpSocket对象会发出connected()信号。 在客户端的槽函数中,我们可以使用QTcpSocket对象发送和接收数据。我们可以使用write()函数发送数据,使用readyRead()信号和read()函数接收数据。 通过这种方式,我们可以在服务端客户端之间进行双向的数据通信服务端可以同时接受多个客户端的连接,每个客户端都可以和服务端进行独立的数据交互。 总的来说,使用Qt实现TCP服务端客户端通信非常方便。通过使用QTcpServer和QTcpSocket类,我们可以轻松地建立连接,发送和接收数据。这种通信方式可以应用于多种场景,如实时聊天、远程控制等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荷塘月色2

您的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值