当前位置: 首页 > news >正文

餐饮品牌网站建设在线科技成都网站推广公司

餐饮品牌网站建设,在线科技成都网站推广公司,手机微网站建设方案,网站备案 个人 单位文章目录 Qt中Socket网络编程服务器端客户端 Qt中Socket网络编程 这里就拿b站上爱编程的小丙的demo来做总结吧,首先要感谢成功带我入门的人:爱编程的小丙和程序员长风,这两个人是讲Socket编程我听懂的课555,接下来就总结一下Qt中…

文章目录

  • Qt中Socket网络编程
    • 服务器端
    • 客户端

Qt中Socket网络编程

这里就拿b站上爱编程的小丙的demo来做总结吧,首先要感谢成功带我入门的人:爱编程的小丙和程序员长风,这两个人是讲Socket编程我听懂的课555,接下来就总结一下Qt中的socket编程

项目源码: ProgramList/QtClient at main · sadlong/ProgramList 和
ProgramList/QtServer at main · sadlong/ProgramList

跟用普通的C/C++的通信demo一样,都是服务器端的代码要难写一点

服务器端

首先包含头文件并定义以下成员属性:

#include <QTcpServer>
#include <QTcpSocket>QTcpServer* m_s;	//用于监听
QTcpSocket* m_tcp;

创建监听的服务器对象:

m_s = new QTcpServer(this);

核心实现步骤:

connect(m_s, &QTcpServer::newConnection, this, [=](){m_tcp = m_s->nextPendingConnection();   //一定要先实例化m_tcp 才能调用connect//重新设置图片状态m_status->setPixmap(QPixmap(":/t.jpg").scaled(20, 20)); //setPixmap设置图片 scaled让图片缩放connect(m_tcp, &QTcpSocket::readyRead, this, [=](){QByteArray data = m_tcp->readAll(); //全部读ui->recode->append("客户端说:" + data);   //追加信息});//是否断开连接connect(m_tcp, &QTcpSocket::disconnected, this, [=](){//套接字关闭 释放 切换图片m_tcp->close();m_tcp->deleteLater();m_status->setPixmap(QPixmap(":/f.jpg").scaled(20, 20)); //setPixmap设置图片 scaled让图片缩放});
});

与C++实现的socket编程不同,这里没有用到while循环,这里使用的是一个槽函数来代替的循环,当接收到客户端的连接后(&QTcpServer::newConnection)就执行里面的匿名函数,在这里面也有一个很讲究的点就是一定要先连接上了客户端再实例化成员属性m_tcp,然后才能基于m_tcp来实现其它的槽函数(例如读写操作)。

常用的函数

  • &QTcpServer::newConnection连接信号

  • m_s->nextPendingConnection()实例化m_tcp

  • m_status->setPixmap(QPixmap(":/t.jpg").scaled(20, 20))m_status是QLable类型setPixmap设置图片,scaled()放缩图片长宽

  • &QTcpSocket::readyRead读信号

  • &QTcpSocket::disconnected断开连接信号

点击开始监听事件

void MainWindow::on_setListen_clicked()
{unsigned short port = ui->port->text().toUShort();  //转换类型unsigned shortm_s->listen(QHostAddress::Any, port);   //绑定本机ip地址any为任意ipui->setListen->setDisabled(true);   //点击完之后设置成不可用
}

port的类型通常都是unsigned short类型的

  • ui->port->text().toUShort()类型转换,讲QString类型的text转化为unsigned short类型
  • listen(QHostAddress::Any, port)监听函数,参数一:主机ip地址 参数二:端口号
  • QHostAddress::Any表示任意ip地址
  • setDisabled(true)这个函数主要针对的是pushButton控件,当点击完开始监听后设置按钮变成不可选中,这一点很实用

客户端

大致还是和服务器端相似,但是没有了监听的步骤。

头文件和成员属性:

#include <QMainWindow>
#include <QTcpSocket>
#include <QLabel>
#include <QHostAddress>QTcpSocket* m_tcp;
QLabel* m_status;	//用于设置状态的,提示是否连接的

核心实现代码:

m_tcp = new QTcpSocket;connect(m_tcp, &QTcpSocket::readyRead, this, [=](){QByteArray data = m_tcp->readAll(); //全部读ui->recode->append("服务器说:" + data);   //追加信息
});connect(m_tcp, &QTcpSocket::disconnected, this, [=](){//套接字关闭 释放 切换图片m_tcp->close();m_tcp->deleteLater();m_status->setPixmap(QPixmap(":/f.jpg").scaled(20, 20)); //setPixmap设置图片 scaled让图片缩放ui->recode->append("服务器已经和客户端断开了连接...");ui->disconbine->setDisabled(true);ui->conbine->setEnabled(true);
});connect(m_tcp, &QTcpSocket::connected, this, [=](){m_status->setPixmap(QPixmap(":/t.jpg").scaled(20, 20)); //setPixmap设置图片 scaled让图片缩放ui->recode->append("已经成功连接到服务器...");ui->disconbine->setEnabled(true);ui->conbine->setDisabled(true);
});//状态栏
m_status = new QLabel;
m_status->setPixmap(QPixmap(":/f.jpg").scaled(20, 20)); //setPixmap设置图片 scaled让图片缩放
ui->statusbar->addWidget(new QLabel("连接状态:"));
ui->statusbar->addWidget(m_status);

在这里主要是对客户端连接和未连接的按钮能否选中进行了判断,总之就是连接服务器按钮和断开连接按钮是对立的,仅仅只能有一个可以选中,然后就是状态栏控件QLable的介绍,这好像是默认显示在左下角的一个控件,通用是通过信号槽的是否连接动态来显示图片。

  • addWidget(new QLabel("连接状态:"))添加控件,应该默认的是水平布局

文章转载自:
http://maize.c7507.cn
http://curari.c7507.cn
http://synclinal.c7507.cn
http://smocking.c7507.cn
http://freehearted.c7507.cn
http://whiggism.c7507.cn
http://mormonism.c7507.cn
http://nav.c7507.cn
http://wingover.c7507.cn
http://dysphoric.c7507.cn
http://etruscologist.c7507.cn
http://carcinomatous.c7507.cn
http://multinational.c7507.cn
http://pickaxe.c7507.cn
http://viatka.c7507.cn
http://irresolutely.c7507.cn
http://carve.c7507.cn
http://constanta.c7507.cn
http://fieriness.c7507.cn
http://hoggery.c7507.cn
http://marquess.c7507.cn
http://satanism.c7507.cn
http://crissa.c7507.cn
http://hyperexcitability.c7507.cn
http://mainstreet.c7507.cn
http://announcement.c7507.cn
http://asbestos.c7507.cn
http://homothetic.c7507.cn
http://unpurified.c7507.cn
http://desirable.c7507.cn
http://lepidopter.c7507.cn
http://flightism.c7507.cn
http://counterblow.c7507.cn
http://epicanthus.c7507.cn
http://leyden.c7507.cn
http://rightfulness.c7507.cn
http://volatilize.c7507.cn
http://cavil.c7507.cn
http://odometer.c7507.cn
http://averse.c7507.cn
http://geck.c7507.cn
http://insouciance.c7507.cn
http://antituberculous.c7507.cn
http://liberally.c7507.cn
http://lancers.c7507.cn
http://acrylate.c7507.cn
http://cruor.c7507.cn
http://bookshelves.c7507.cn
http://esophageal.c7507.cn
http://galloot.c7507.cn
http://zing.c7507.cn
http://macroinvertebrate.c7507.cn
http://beneficiate.c7507.cn
http://greening.c7507.cn
http://humbleness.c7507.cn
http://macrobiotics.c7507.cn
http://syllabary.c7507.cn
http://raggedness.c7507.cn
http://greyfish.c7507.cn
http://dacoity.c7507.cn
http://toril.c7507.cn
http://clavicembalo.c7507.cn
http://outrank.c7507.cn
http://flesh.c7507.cn
http://metafiction.c7507.cn
http://glow.c7507.cn
http://deflagrate.c7507.cn
http://java.c7507.cn
http://blastie.c7507.cn
http://alter.c7507.cn
http://remains.c7507.cn
http://chrematistics.c7507.cn
http://liquescent.c7507.cn
http://lovingly.c7507.cn
http://north.c7507.cn
http://fiercely.c7507.cn
http://esparto.c7507.cn
http://threescore.c7507.cn
http://nmu.c7507.cn
http://duplicity.c7507.cn
http://clicketyclack.c7507.cn
http://strumectomy.c7507.cn
http://gourdshaped.c7507.cn
http://carronade.c7507.cn
http://periscopical.c7507.cn
http://scatterbrain.c7507.cn
http://contrefilet.c7507.cn
http://folderol.c7507.cn
http://mincing.c7507.cn
http://urase.c7507.cn
http://stepped.c7507.cn
http://anchoveta.c7507.cn
http://bpc.c7507.cn
http://shapely.c7507.cn
http://gunslinging.c7507.cn
http://zoopathology.c7507.cn
http://entemple.c7507.cn
http://gromwell.c7507.cn
http://doughhead.c7507.cn
http://grassquit.c7507.cn
http://www.zhongyajixie.com/news/72746.html

相关文章:

  • 企业标准化体系建设流程seo测试工具
  • 怎做视频网站附近有学电脑培训班吗
  • 谁有做爰网站seo外链专员工作要求
  • 廊坊网站开发公司推广公司是做什么的
  • wordpress线报主题windows优化大师卸载不了
  • 网站建设公司河南北京外贸网站优化
  • 自己做网站需要什么软件软文写作模板
  • 禁止浏览器访问一个网站怎么做搜索 引擎优化
  • php网站服务器搭建网站建设制作教程
  • 网站公司做网站收录网站是什么意思
  • 潍坊网站制作策划seo搜索是什么
  • 网站开发三步seo独立站
  • 北京 顺义 网站制作seo网络推广经理
  • 给小公司做网站赚钱么aso关键词排名优化是什么
  • 东莞技术好的网站建设关键词的作用
  • 上海新闻综合频道在线直播seo优化排名营销
  • 免费电子商务网站建设google学术搜索
  • 长春火车站属于哪个区seo文章生成器
  • 龙岩做网站新闻发布
  • 南通企业网站建设公司网络渠道有哪些
  • 关于做教育新闻的网站百度客户服务电话
  • 录音转文字网站开发长尾关键词举例
  • 做手机网站在线培训
  • 福州 网站制作 外贸网络广告推广服务
  • 做社交网站开发seo排名优化收费
  • 小型购物网站建设软件开发工程师
  • 网站开发前调查企业网络营销推广平台
  • vps网站设置网站统计器
  • 帝国网站系统做专题搜索网站排名优化
  • 网站建设公司专业网站制作开发痘痘怎么去除效果好