专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

QT之TCP通信

  QT之TCP通信
  QT中可以通过TCP协议让服务器和客户端之间行通信。所以下面我就围绕服务器和客户端来写。
  这是我们写服务器和客户端的具体流程:
  A、服务器:
  1。创建QTcpServer对象
  2。启动服务器(监听)调用成员方法listen(QHostAddress::Any,端口号)
  3。当有客户端链接时候会发送newConnection信号,触发槽函数接受链接(得到一个与客户端通信的套接字QTcpSocket)
  4。QTcpsocket发送数据用成员方法write,
  5。读数据当客户端有数据来,QTcpSocket对象就会发送readyRead信号,关联槽函数读取数据
  B、客户端:
  1。创建QTcpSocket对象
  2。链接服务器connectToHost(QHostAddress(ip),端口号)
  3。QTcpsocket发送数据用成员方法write,
  4。读数据当对方有数据来,QTcpSocket对象就会发送readyRead信号,关联槽函数读取数据【相关文章推荐】
  点击领取Qt开发进阶技术栈学习路线资料
  我们需要调用到的头文件有两个:includeQTcpServerincludeQTcpSocket
  我们先要在工程文件中加入networkQTcoreguinetwork
  下面我们来看看服务器程序步骤:
  1、初始化服务器server对象mServernewQTcpServer();
  2、启动监听服务器mServerlisten(QHostAddress::Any,9988);9988为端口号
  3、当有客户端链接时候会发送newConnection信号,触发槽函数接受链接(得到一个与客户端通信的套接字QTcpSocket)connect(mServer,SIGNAL(newConnection()),this,SLOT(newclient()));mSocketmServernextPendingConnection();与客户端通信的套接字
  4、发送数据mSocketwrite(msg。toUtf8());
  5、读数据当客户端有数据来,QTcpSocket对象就会发送readyRead信号,关联槽函数读取数据connect(mSocket,SIGNAL(readyRead()),this,SLOT(readclientdata()));
  6、连接多个客户端可以实现同时读取多个客户端发送过来的消息QTcpSocketobj(QTcpSocket)sender();
  7、检测掉线connect(mSocket,SIGNAL(disconnected()),this,SLOT(clientdis()));检测掉线信号
  下面是服务器的实现的具体代码:includetcpserver。hincludeuitcpserver。hincludeQDebugTcpServer::TcpServer(QWidgetparent):QMainWindow(parent),ui(newUi::TcpServer){uisetupUi(this);初始化服务器server对象mServernewQTcpServer();关联客户端连接信号newConnectionconnect(mServer,SIGNAL(newConnection()),this,SLOT(newclient()));连接客户端启动服务器监听mServerlisten(QHostAddress::Any,9988);}TcpServer::TcpServer(){deleteui;}voidTcpServer::newclient(){qDebug()新客户段连接;mSocketmServernextPendingConnection();与客户端通信的套接字关联接收客户端数据信号readyRead信号(客户端有数据就会发readyRead信号)connect(mSocket,SIGNAL(readyRead()),this,SLOT(readclientdata()));检测掉线信号connect(mSocket,SIGNAL(disconnected()),this,SLOT(clientdis()));}voidTcpServer::readclientdata(){可以实现同时读取多个客户端发送过来的消息QTcpSocketobj(QTcpSocket)sender();QStringmsgobjreadAll();qDebug()msg;}voidTcpServer::clientdis(){QTcpSocketobj(QTcpSocket)sender();掉线对象qDebug()objpeerAddress()。toString();打印出掉线对象的ip}
  说完服务器那我们继续来看看客户端是怎么实现的:
  1、创建QTcpSocket对象【相关文章推荐】
  点击领取Qt开发进阶技术栈学习路线资料mSocketnewQTcpSocket();
  2、链接服务器connectToHost(QHostAddress(ip),端口号),连接服务器ip和端口号mSocketconnectToHost(uiipEdittext(),uiportEdittext()。toInt());uiipEdittext():ip,uiportEdittext()。toInt():端口号
  3、发送数据取发送信息编辑框内容QStringmsguisendEdittoPlainText();mSocketwrite(msg。toUtf8());转编码
  4、检测链接成功信号关联槽函数connect(mSocket,SIGNAL(connected()),this,SLOT(connectsuc()));
  5、检测掉线信号connect(mSocket,SIGNAL(disconnected()),this,SLOT(clientdis()));
  6、服务器和客户端关闭都可以使用closemSocketclose();
  这是客户端实现的具体代码includetcpclient。hincludeuitcpclient。hincludeQDebugTcpClient::TcpClient(QWidgetparent):QMainWindow(parent),ui(newUi::TcpClient){uisetupUi(this);初始化套接字对象mSocketnewQTcpSocket();关联数据信号connect(mSocket,SIGNAL(readyRead()),this,SLOT(readdata()));}TcpClient::TcpClient(){deleteui;}voidTcpClient::readdata(){QStringmsgmSocketreadAll();qDebug()msg;}voidTcpClient::onbtnconnectServerclicked(){检测链接成功信号关联槽函数connect(mSocket,SIGNAL(connected()),this,SLOT(connectsuc()));检测掉线信号connect(mSocket,SIGNAL(disconnected()),this,SLOT(clientdis()));连接服务器,设置ip和端口号mSocketconnectToHost(uiipEdittext(),uiportEdittext()。toInt());}voidTcpClient::onbtnsendclicked(){取发送信息编辑框内容QStringmsguisendEdittoPlainText();mSocketwrite(msg。toUtf8());转编码}voidTcpClient::connectsuc(){uibtnconnectServersetEnabled(false);如果连接成功则连接按钮不能按下}voidTcpClient::clientdis(){uibtnconnectServersetEnabled(true);如果连接没有成功则连接按钮还可以按下}
  这是服务器和客户端分开两个文件夹写的程序,在这里我也实现了服务器和客户端写在同一个文件中
  具体代码如下:
  头文件:tcpapp。h
  ViewCode
  源文件:tcpapp。cpp
  ViewCode
  界面文件tcpapp。ui如下图
  此外这里还使用到了容器,在这里讲讲容器的使用
  1、定义容器对象QVectorQTcpSocketclients;存储所有在线客户端(容器)解释:QTcpSocke容器的类型clients容器名
  2、往容器中添加成员上线用户添加到客户列表容器clients。append(mSocket);
  3、寻找某个成员在容器中位置introwclients。indexOf(obj);找到掉线对象的内容所在的行
  4、从容器中删除成员clients。remove(row);从容器中删除成员
  如果你对QT开发感兴趣,觉得文章对您有帮助,别忘了点赞、收藏哦!或者对本文的一些阐述有自己的看法,有任何问题,欢迎在下方评论区讨论!

因歪曲董明珠私生活,大V龚文祥登报道歉南都讯不久前,一则关于格力电器董事长兼总裁董明珠与其公司85后男高管谈恋爱的消息在网上流传,该消息源于大V龚文祥发布在网络上的一张截图。3月15日,龚文祥在南方都市报就此前的言论登李想,又一个IPO来了这要从一个不起眼的IPO说起。本周,彭博援引知情人士报道,自动驾驶前装系统方案提供商知行科技(iMotion)正考虑最早今年在香港IPO,可能筹集2亿至3亿美元。更多细节流出,知行洪湖莲藕获评2022年快递服务现代农业金牌项目近日,国家邮政局公布了2022年快递服务现代农业金牌项目,全国共有117个项目入选,洪湖莲藕位列其中。洪湖莲藕,清甜可口洪湖莲藕在全国享有盛誉。近年来,在互联网的带动下,洪湖市大力TikTok击败Instagram和Facebook,占据多个国家应用内收入最大份额1TikTok击败Instagram和Facebook,占据多个国家应用内收入的最大份额据statista发布的数据显示,在美国,2023年迄今为止的应用收入中,26来自于TikT30家商业银行集体发声不用的银行卡,将被停用销卡最近,有三十家商业银行发出了统一声明,很多网友议论纷纷,有几种信用卡达到这几条条件了,要从此停止服务,还有可能会直接被销卡!到底是哪些条件呢,很多人家里的信用卡,银行卡非常多,不过中午收盘!两大消息直接暂稳局势!短线已有机会,但要量力而行!昨天盘后陆续传来两大重要消息,暂时已稳住看似岌岌可危的局势!再加欧美整体股市以及金融股的集体反弹,颇有一种一夜变天的感觉!受此影响A股上午高开高走,截止收盘,上证指数上涨1。58!辛巴带领辛选在多领域发挥供应链优势小孩来玩亲子公益日启动!在电商行业当中,供应链的能力强大与否会直接关系到返单速度,上新频率以及客户购物体验。头部直播电商企业辛选的创始人辛巴,就曾强调完善的供应链是辛选集团持续发展的重要原因。正所谓,供应全省唯一!吴江开发区这个园区获评全国示范近日,工信部公布2022年工业互联网试点示范项目名单,位于吴江开发区的长三角工业互联网平台创新示范园区获评园区类工业互联网平台园区产业集群试点示范,为该类别全省唯一入选项目。近年来浅谈元朝地方政府提控案牍的司法制度特点与影响历史开讲文八斗史才编辑八斗史才前言元朝是中国历史上的一个重要朝代,其地方政府在社会管理和司法裁决方面扮演着重要的角色。本文将通过对元朝地方政府提控案牍的初步探索,来探讨其司法制度的掩人耳目近日,德国联邦议员斯特芬科特雷向塔斯社表示,北溪天然气管道爆炸事件的相关调查不透明,德国没有从其盟友那里得到关于调查活动的足够信息。科特雷称,德国政府派出的代表很清楚,只有德国的盟田园风光已开启!北京路街道持续开展村庄清洁行动月活动大众网海报新闻记者朱昱辰日照报道为进一步推进村庄清洁攻坚行动落地见效,聚力打造干净整洁宜居的环境,全面改善提升农村生活条件,近日,北京路街道根据市区关于开展2023年度村庄清洁行动
世界杯看球房火了,近一周主题酒店预订量增长逾2。5倍张先生是一位80后,这几天他都住在酒店。想看世界杯比赛,但是晚上又怕吵到家里人,所以就在家附近找了一家比较平价的酒店,晚上也比较自由。类似张先生这样近期入住酒店观赛的住客不少,各地江西省吉安市峡江县玉笥山(11)20201124峡江玉笥山位于江西省吉安市峡江县水边镇何君村西,东临105国道和京九铁路穿腹而过,原名群玉山。大诗人李白江南之行,从匡庐游至群玉山时,见峰峦连绵不绝。位于峡江县城西中日千年史日本为何要热衷于征服中国呢?头条创作挑战赛中日关系源远流长,曾经有着一段令人称赞的蜜月期。可自甲午战争以来,中日关系急转直下,已经没有了任何的友谊可言了。不仅没有友谊可言,还受到日本极端分子的影响,让两国成为五星出东方利中国一个千年的神奇预言五星出东方利中国1995年,中日尼雅遗址学术考察队在新疆和田民丰县进行考古挖掘,这里便是昔日的尼雅古国。当考古人员挖开尼雅古国的一处古墓时,考古人员一阵欢呼,发现了什么?会使他们如成都有座冷门古镇,保存着大量明清古建筑,还有12棵千年古树头条创作挑战赛在成都这座城市中古镇,古街非常的多,在市中心有全国都赫赫有名的宽窄巷子,锦里古街作为代表,在成都周边拥有黄龙溪古镇,洛带古镇,街子古镇等大批的代表古镇,如今这些古镇都第三届郎静山摄影艺术周启动千年古镇促两岸交流开幕式现场。丁成摄中新网金华11月26日电(张斌陈志恒)11月26日,第三届郎静山摄影艺术周暨浙江省摄影之乡工作现场会活动在浙江金华兰溪的千年古镇游埠启动,知名摄影艺术家摄影爱好者所有走过的路,遇到的人,都有他存在的意义早上好?不好不好早上真的好吗?为了上班在狗狗都没醒的早上要逼自己起床又香又软的被窝不好吗?非要早上好一点也不好太困了二十岁的酸楚或许在三十岁会有答案三十岁的困惑到四十岁或许就解开了我只想用一条粗长的绳缠住我36码的脚缠住夺眶而出的白月光静默作者梧桐雨等不来烟花三月的从天而降等不来旋转的碎花裙等不来二月春风的敲门声我只是静默,静默而已窗外的枯叶,无精打采经不住来回的折腾说不出你的来意说不出真诚的话我只想用一条粗长的雷丁汽车获得32亿元A轮融资,山东省内国资跟投(文潘昱辰编辑周远方)11月21日,雷丁汽车宣布完成A轮融资,整体融资规模为32亿元,将于11月底开始陆续到位。雷丁方面表示,此次融资由潍坊市潍城西部投资发展集团领投,来自山东省内知恩于心,暖心于怀山东齐鲁技工学校开展感恩感谢活动(一)知恩于心暖心于怀拥有一颗感恩的心,才懂得去孝敬父母拥有一颗感恩的心,才懂得去关心帮助他人拥有一颗感恩的心,才会勤奋学习,真爱自己拥有一颗感恩的心,才能学会包容,赢得友谊拥有一颗感恩蓉妹妹小剑哥房车旅行之山东人太好客了关注乡土沂蒙,每天用文字向你介绍自媒体网红台前幕后的故事。小剑哥和蓉妹妹都是内蒙人,小剑哥是鄂尔多斯人,蓉妹妹是乌海人。两个人因为相同的爱好,共同自驾房车开始旅游,在旅游的过程中拍
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网