国庆第五天

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

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、什么是数据库 存储数据用文件就可以了,为什么还要弄个数据库? 文件保存数据有以下几个缺点: 文件的安全性问题 文件不利于数据查询和管理 文件不利于存储海量数据 文件在程序中控制不方便 数据

    2023年04月23日
    浏览(57)
  • 数据库应用:数据库管理系统与安装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日
    浏览(57)
  • 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日
    浏览(65)
  • 数据库优化(数据库自身的优化,数据库表优化,程序操作优化)

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

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

    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日
    浏览(55)
  • 什么是向量数据库?向量数据库工作原理?向量数据库解决方案?

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

    2024年02月15日
    浏览(59)
  • 数据库|数据库范式(待完成)

    数据库的一般操作是通过SET是对数据进行设置,同时用GET去获得存放在数据库中的信息。 产生的背景(没有规范化的坏处/带来的问题) 规范化表格设计的要求 一是要使得数据库易于理解(易于理解才方便在使用过程中快速上手) 易于增强和扩展(在现实开发场景中,往往

    2024年01月17日
    浏览(47)
  • 数据库—数据库备份(三十四)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 二、数据备份的重要性 三、造成数据丢失的原因 四、备份类型 4.1物理与逻辑角度 4.2数据库备份策略角度 五、常见的备份方法 5.1 物理备份 5.2 使用专用备份工具 5.3 通过启用二进制

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

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

    2024年02月08日
    浏览(61)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包