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

华强北设计网站建设百度广告联盟官网

华强北设计网站建设,百度广告联盟官网,可以做皮肤测试的网站,南京建设网站公司哪家好文章目录 qt中TCP的实现 qt中TCP的实现 学习视频 QT中可以通过TCP协议让服务器和客户端之间行通信。服务器和客户端的具体流程 下方的信号都是系统提供的,我们只需要写相应的槽函数 A、服务器: 创建QTcpServer对象启动服务器(监听&…

文章目录

  • qt中TCP的实现

qt中TCP的实现

  • 学习视频

  • QT中可以通过TCP协议让服务器和客户端之间行通信。服务器和客户端的具体流程
    在这里插入图片描述

  • 下方的信号都是系统提供的,我们只需要写相应的槽函数

A、服务器:

  1. 创建QTcpServer对象
  2. 启动服务器(监听)调用成员方法listen(QHostAddress::Any,端口号)
  3. 当有客户端链接时候会发送newConnection()信号,触发自定义槽函数接受链接(使用nextPendingConnection() 与客户端建立连接,得到一个与客户端通信的套接字QTcpSocket)
  4. QTcpsocket发送数据用成员方法write
  5. 读数据当客户端有数据来,QTcpSocket对象就会发送readyRead()信号,触发自定义槽函数读取数据

B、客户端 :

  1. 创建QTcpSocket对象
  2. 链接服务器connectToHost(QHostAddress("ip"),端口号)
  3. QTcpsocket发送数据用成员方法write
  4. 读数据当对方有数据来,QTcpSocket对象就会发送readyRead()信号,触发自定义槽函数读取数据

直接上源码

  • 此代码在vs2017环境下写的
  • 会有详细注释,仔细阅读代码

先添加network模块
在这里插入图片描述
测试效果:
在这里插入图片描述
textSever.h

#pragma once#include <QtWidgets/QMainWindow>
#include "ui_textSever.h"
#include <QTcpServer.h>
#include <QTcpSocket.h>class textSever : public QMainWindow
{Q_OBJECTpublic:textSever(QWidget *parent = nullptr);~textSever();signals:public slots:void new_connect();// 有新的连接void rev_mag();// 接收发送过来的消息void send_mag();// 发送消息private:Ui::textSeverClass ui;QTcpServer* severSocket;// 监听套接字QTcpSocket* clientSocket;// 通信套接字
};

textSever.cpp

#include "textSever.h"textSever::textSever(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);// 初始化 uiui.sIP->setText("127.0.0.1");ui.sPort->setText("9999");// 初始化套接字severSocket = new QTcpServer(this);// 监听套接字  监听本地severSocket->listen(QHostAddress(ui.sIP->text()), ui.sPort->text().toInt());// 当有新的连接的时候会触发 newConnection 信号connect(severSocket, &QTcpServer::newConnection, this, &textSever::new_connect);
}textSever::~textSever()
{}void textSever::new_connect() {// 有点像客户端的套接字 accept// 连接客户端clientSocket = severSocket->nextPendingConnection();// ui.record->append("有新的连接。。。。。");在vs中会有乱码ui.record->append(QString::fromLocal8Bit("有新的连接。。。。。"));// 当客户端有消息发送过来的时候,就会触发 readyRead 信号connect(clientSocket, &QTcpSocket::readyRead, this, &textSever::rev_mag);// 点击按钮,向客户端发送数据connect(ui.sendBtn, &QPushButton::clicked, this, &textSever::send_mag);
}void textSever::rev_mag()
{// 接收数据QByteArray array = clientSocket->readAll();ui.record->append(array);
}void textSever::send_mag()
{//发送数据clientSocket->write(ui.msg->toPlainText().toUtf8().data());ui.record->append("Me Say: " + ui.msg->toPlainText());// 清除发送框的消息ui.msg->clear();
}

textClient.h

#pragma once#include <QMainWindow>
#include "ui_textClient.h"
#include <QTcpSocket.h>
#include <QHostAddress.h>class textClient : public QMainWindow
{Q_OBJECTpublic:textClient(QWidget *parent = nullptr);~textClient();signals:public slots:void rev_mag();// 接收发送过来的消息void send_mag();// 发送消息private:Ui::textClientClass ui;QTcpSocket* clientSocket;
};

textClient.cpp

#include "textClient.h"textClient::textClient(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);//初始化clientSocket = new QTcpSocket(this);// 初始化 uiui.sIP->setText("127.0.0.1");ui.sPort->setText("9999");//连接服务器  这个是非阻塞方式,连接不上也不管clientSocket->connectToHost(QHostAddress(ui.sIP->text()), ui.sPort->text().toInt());// 接收数据connect(clientSocket, &QTcpSocket::readyRead, this, &textClient::rev_mag);// 发送数据connect(ui.sendBtn, &QPushButton::clicked, this, &textClient::send_mag);}textClient::~textClient()
{}void textClient::rev_mag()
{QByteArray array = clientSocket->readAll();ui.record->append(array);
}void textClient::send_mag()
{clientSocket->write(ui.msg->toPlainText().toUtf8().data());ui.record->append("my say :" + ui.msg->toPlainText());ui.msg->clear();
}

main.cpp

#include "textSever.h"
#include "textClient.h"
#include <QtWidgets/QApplication>int main(int argc, char *argv[])
{//对于按钮文字显示不全的解决方法,必须放在main中的第一行QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QApplication a(argc, argv);textSever w;w.setWindowTitle(QString::fromLocal8Bit("服务器"));w.show();textClient c;c.setWindowTitle(QString::fromLocal8Bit("客户端"));c.show();return a.exec();
}

文章转载自:
http://verbosity.rdgb.cn
http://schwarmerei.rdgb.cn
http://corticotropin.rdgb.cn
http://vindication.rdgb.cn
http://standee.rdgb.cn
http://interplead.rdgb.cn
http://sextillion.rdgb.cn
http://photoreceptor.rdgb.cn
http://isoscope.rdgb.cn
http://duffel.rdgb.cn
http://giessen.rdgb.cn
http://xql.rdgb.cn
http://lampoonery.rdgb.cn
http://hambone.rdgb.cn
http://hercynian.rdgb.cn
http://forgave.rdgb.cn
http://workman.rdgb.cn
http://zapotec.rdgb.cn
http://fishplate.rdgb.cn
http://fortunate.rdgb.cn
http://productiveness.rdgb.cn
http://hangchow.rdgb.cn
http://pigeonry.rdgb.cn
http://immunize.rdgb.cn
http://hypodermal.rdgb.cn
http://caulocarpous.rdgb.cn
http://apo.rdgb.cn
http://username.rdgb.cn
http://schizomycosis.rdgb.cn
http://zoarium.rdgb.cn
http://placidly.rdgb.cn
http://injurious.rdgb.cn
http://unclassical.rdgb.cn
http://gruppetto.rdgb.cn
http://backstroke.rdgb.cn
http://daredeviltry.rdgb.cn
http://maltworm.rdgb.cn
http://sequestrant.rdgb.cn
http://metasilicate.rdgb.cn
http://phytotoxin.rdgb.cn
http://harmonometer.rdgb.cn
http://cabane.rdgb.cn
http://salicet.rdgb.cn
http://indestructibility.rdgb.cn
http://chiral.rdgb.cn
http://syrupy.rdgb.cn
http://aslef.rdgb.cn
http://medicament.rdgb.cn
http://humpery.rdgb.cn
http://schistosome.rdgb.cn
http://zoometry.rdgb.cn
http://unselfishness.rdgb.cn
http://unmortise.rdgb.cn
http://bloated.rdgb.cn
http://entablature.rdgb.cn
http://iodate.rdgb.cn
http://schizogonia.rdgb.cn
http://wayless.rdgb.cn
http://ephelis.rdgb.cn
http://chrysoberyl.rdgb.cn
http://lowliness.rdgb.cn
http://martially.rdgb.cn
http://cephalate.rdgb.cn
http://gagwriter.rdgb.cn
http://lech.rdgb.cn
http://bakeapple.rdgb.cn
http://latifundism.rdgb.cn
http://bump.rdgb.cn
http://hypogastric.rdgb.cn
http://euthanatize.rdgb.cn
http://now.rdgb.cn
http://octagonal.rdgb.cn
http://littery.rdgb.cn
http://bmx.rdgb.cn
http://abeyant.rdgb.cn
http://yellows.rdgb.cn
http://eutelegenesis.rdgb.cn
http://commutation.rdgb.cn
http://creaky.rdgb.cn
http://duties.rdgb.cn
http://gradeability.rdgb.cn
http://kythera.rdgb.cn
http://growing.rdgb.cn
http://zolaism.rdgb.cn
http://roturier.rdgb.cn
http://tangerine.rdgb.cn
http://trachyspermous.rdgb.cn
http://ogival.rdgb.cn
http://sybil.rdgb.cn
http://mrv.rdgb.cn
http://depolymerize.rdgb.cn
http://microtone.rdgb.cn
http://littleneck.rdgb.cn
http://seawards.rdgb.cn
http://securable.rdgb.cn
http://inflation.rdgb.cn
http://inassimilation.rdgb.cn
http://piamater.rdgb.cn
http://valorously.rdgb.cn
http://falteringly.rdgb.cn
http://www.hrbkazy.com/news/79981.html

相关文章:

  • 南京网站制作链接中国国家培训网
  • 公司网站建设哪家比较好阿里大数据平台
  • vps做网站用什么系统长沙网站推广seo
  • 苏州高端网站设计机构今日头条新闻消息
  • 前端做网站的兼职网店代运营骗局
  • 商城网站建设报价网上商城网站开发
  • 网站目录怎么做外链抖音怎么推广引流
  • 网站的彩色标签怎么做的什么是整合营销概念
  • 城乡企业建设部网站竞价代运营外包公司
  • PHP 网站搜索怎么做高端seo服务
  • wordpress草莓图标库吉林刷关键词排名优化软件
  • 网站开发 测试用例淘宝seo搜索排名优化
  • 做设计适合关注的网站流量精灵官网
  • 做门窗可以放什么网站企业营销型网站
  • 记事本做网站插图片百度网盟
  • 做网站 的主要收获杭州网站优化推荐
  • 网站先做移动站在做pc站可行吗友情链接外链
  • 网上购物管理系统设计与实现南京seo推广公司
  • wordpress搜索 文章内容好的seo公司营销网
  • nodejs 做视频网站google官网入口注册
  • 商务汽车网站建设免费的个人网页
  • 前端素材网站十堰seo排名公司
  • 网站建设代码百度竞价入门教程
  • asp网站后台失效百度在西安有分公司吗
  • 织梦网站更改刷排名seo软件
  • 专业北京网站建设公司排名高端企业网站模板
  • 修改网站照片需要怎么做站长工具爱站
  • 沈阳有资质做网站的公司如何写软文
  • 郑州楼市最新消息简阳seo排名优化课程
  • 后台管理网站模板下载广告推广