国庆第五天

这篇具有很好参考价值的文章主要介绍了国庆第五天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTcpServer>
#include <QTcpSocket>
#include <QList>
#include <QMessageBox>
#include <QDebug>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

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


private slots:
    void on_btn_clicked();
    void newConnection_slot();
    void readyRead_slot();

private:
    Ui::Widget *ui;

    QTcpServer *server;

    QList<QTcpSocket *> clientList;
};
#endif // WIDGET_H

main.cpp

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

widget.cpp文章来源地址https://www.toymoban.com/news/detail-729131.html

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    server = new QTcpServer(this);
    connect(server,&QTcpServer::newConnection,this,&Widget::newConnection_slot);
}

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

void Widget::on_btn_clicked()
{
    quint16 port = ui->lineEdit->text().toUInt();

    if(!ui->lineEdit->text().isEmpty() && !server->listen(QHostAddress::Any,port))
    {
        QMessageBox::information(this,"失败","监听失败");
        return ;
    }
    else
    {
        QMessageBox::information(this,"成功","监听成功");
    }
}

void Widget::newConnection_slot()
{
    QTcpSocket *s = server->nextPendingConnection();
    clientList.push_back(s);
    connect(s,&QTcpSocket::readyRead,this,&Widget::readyRead_slot);

}

void Widget::readyRead_slot()
{
    for(int i = 0; i < clientList.size(); i++)
    {
        if(clientList[i]->state() == 0)
        {
            clientList.removeAt(i);
        }
    }

    for(int i = 0; i < clientList.size(); i++)
    {
        if(clientList[i]->bytesAvailable() != 0)
        {
            QByteArray msg = clientList[i]->readAll();
            ui->listWidget->addItem(QString::fromLocal8Bit(msg));
            for(int j = 0; j < clientList.size(); j++)
            {
                clientList[j]->write(msg);
            }
        }
    }
}


到了这里,关于国庆第五天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据库】数据库设计

    数据库设计面对的主要有哪些问题 (1) 懂数据库原理同时懂甲方软件专业知识的人缺少; (2) 应用的数据库系统的最终目标往往在一开始不能完全明确,与开发者与用户方最初没在要求完全一致有关; (3) 应用业务系统千差万别的,难以找到一种通用的工具和方法。 (1) 对人员

    2024年02月05日
    浏览(64)
  • 数据库应用:数据库管理系统与安装MySQL数据库

    目录 一、理论 1.数据库管理系统 2.关系型数据库 3.数据库 4.MySQL数据库 5.MySQL部署 二、实验 1.yum安装MySQL 2.编译安装MySQL 3.配置MySQL数据库的Tab补全  三、问题 1.数据库登录报错 2.数据库密码复杂度报错 3.数据库连接报错 四、总结 (1)概念 数据库管理系统(Database Management

    2024年02月13日
    浏览(55)
  • MySQL数据库:数据库管理系统与安装MySQL数据库

    目录 一、理论 1.数据库管理系统 2.关系型数据库 3.数据库 4.MySQL数据库 5.MySQL部署 二、实验 1.yum安装MySQL 2.编译安装MySQL 3.配置MySQL数据库的Tab补全  三、问题 1.数据库登录报错 2.数据库密码复杂度报错 3.数据库连接报错 四、总结 (1)概念 数据库管理系统(Database Management

    2024年02月12日
    浏览(62)
  • 数据库优化(数据库自身的优化,数据库表优化,程序操作优化)

    1. 增加次数据文件 从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情况下有一个主数据文件(MDF)就够了,但是有些大型的数据库,由于信息很多,而且查询频繁,所以为了提高查询速度,可以把一些表或者一些表中的部分记录分开存储在不同的数据文件里 由于C

    2024年02月14日
    浏览(47)
  • 【数据库】数据库常用函数

    TIMESTAMPDIFF 是一个MySQL函数,用于计算两个日期或时间之间的差值。函数返回两个日期或时间之间的差值,并以指定的单位表示。 语法: 其中: unit 是计算的单位。可以是以下值:YEAR(年)、QUARTER(季度)、MONTH(月)、DAY(天)、HOUR(小时)、MINUTE(分钟)、SECOND(秒)

    2024年02月11日
    浏览(43)
  • Android studio 连接SQLite数据库 +创建数据库+创建数据库表

    Android studio 之数据库的使用 连接创建SQLite 大家好,欢迎来到寒依。 相信看啦我的教程 当老师问你在学习Android studio 数据库使用过程中遇到什么困难,分享一下你的感悟和解决方法 的时候,你可以直接大胆的说出来: “老师我没有遇到问题,看啦寒依的教程 畅行无阻” 我

    2024年02月02日
    浏览(52)
  • 什么是向量数据库?向量数据库工作原理?向量数据库解决方案?

    向量数据库是一种专门用于存储和处理向量数据的数据库系统。向量数据是指具有多维度属性的数据,例如图片、音频、视频、自然语言文本等。传统的关系型数据库通常不擅长处理向量数据,因为它们需要将数据映射成结构化的表格形式,而向量数据的维度较高、结构复杂

    2024年02月15日
    浏览(55)
  • MYSQL数据库基础(数据库)

    用户在客户端输入SQL语句 客户端会把SQL通过网络发送给服务器 服务器会执行这个SQL,把结果返回给客户端 客户端接收到结果后,显示到界面上 1.创建数据库 1.1 语法 1.2 解析 已经有了数据库,为何还要创建 计算机中,不同的词有不同的含义,如一门学科、一类软件、某个具

    2024年02月07日
    浏览(51)
  • LabVIEW数据库-连接数据库

    LabVIEW数据库连接工具包访问数据库时,一般遵循连接数据库-操作数据库-断开连接数据库的流程。 LabVIEW可基于ODBC或ADO来访问数据库。 ODBC标准通过DSN连接数据库,ADO和OLE DB是通过UDL连接数据库。 标准/方案 描述 ODBC 只访问关系数据库;使用DSN连接数据库 OLEDB 微软提供的到各

    2024年02月05日
    浏览(52)
  • 数据库复习——数据库模式设计

    1.冗余 2.导致数据一致性出现问题 3.插入异常 4.更新异常 5.删除异常 函数依赖是指一个或多个属性的取值可以确定另一个属性的取值。具体地说,如果一个关系模式R中属性集合X的取值能唯一地确定属性集合Y的取值,那么我们称属性集合Y对于属性集合X具有函数

    2024年02月08日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包