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

网站策划方案800字跨境电商erp软件排名

网站策划方案800字,跨境电商erp软件排名,DW怎么做电商网站,上海网站商城建设公司吗文章目录 核心APITCP回显服务器TCP回显客户端 核心API QTcpServer用于监听端口和获取客户端连接 名称类型说明对标原生APIlisten(const QHostAddress, quint16 port)方法绑定指定的地址和端口号#xff0c;并开始监听bind和listennextPendingConnection()方法从系统中获… 文章目录 核心APITCP回显服务器TCP回显客户端 核心API QTcpServer用于监听端口和获取客户端连接 名称类型说明对标原生APIlisten(const QHostAddress, quint16 port)方法绑定指定的地址和端口号并开始监听bind和listennextPendingConnection()方法从系统中获取到一个建立好的tcp连接返回一个QTcpSocket表示这个客户端的连接通过这个socket对象完成和客户端之间的通信acceptnewCondition()信号有新的客户端建立好连接之后触发无类似IO多路复用的通知机制 QTcpSocket用于客户端和服务器之前的数据交互 tcp读取的数据是字节流因此读取和返回的都是字节数组这和udp的QNetworkDatagram数据报不一样 事件循环可以简单理解为是Qt程序内部一个带有“生物钟”这样的东西周期性执行一些逻辑 名称类型说明对标原生APIreadAll()方法读取当前接收缓冲区的所有数据返回QByteArray对象readwrite(const QByteArray)方法将数据写入socket当中writedeleteLater方法暂时把socket对象标记为无效Qt会在下一个事件循环中构造释放该对象无readyRead信号有数据到达并准备就绪时触发无disconnected信号连接断开时触发无 QByteArray是字节数组可以和QString互相转换 QString的构造函数可以把QByteArray转换成QStringQString的toUtf8函数可以把QString转成QByteArray TCP回显服务器 用这些接口写一个回显服务器。 创建项目之后如果要进行网络编程第一步就是在.pro文件中加入network模块 界面 widget.h #ifndef WIDGET_H #define WIDGET_H#include QWidget #include QTcpServer QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();void processConnection();QString process(const QString request); private:Ui::Widget *ui;QTcpServer *tcpServer; }; #endif // WIDGET_Hwidget.cpp 绑定和监听端口号一定是要等准备工作做完之后再进行比如说如何处理连接、如何处理请求等… 需要手动释放clientSocket因为它是每个客户端都有这样一个对象而QTcpServer和QUdpServer都是只有一份。如果不对断开连接的客户端进行释放累计的客户端会越来越多这会导致两个问题文件描述符泄漏和内存泄漏。 也不能直接delete clientSocket因为当前槽函数主要是围绕clientSocket来进行操作的一旦delete其他逻辑就无法使用clientSocket使用要保证delete操作是最后一步而且不会被return或者抛出异常给跳过。 Qt提供了deleteLater不是立即销毁而是告诉Qt下一轮事件循环中再进行上述销毁操作。 槽函数是在事件循环中进行的进入下一轮事件循环表明上一轮事件肯定结束了。 #include widget.h #include ui_widget.h #includeQMessageBox #includeQTcpSocket Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);//修改窗口标题this-setWindowTitle(tcp服务器);//创建QTcpServer实例tcpServer new QTcpServer(this);//连接信号槽(如何处理连接)connect(tcpServer, QTcpServer::newConnection, this, Widget::processConnection);//绑定并监听端口号if(!tcpServer-listen(QHostAddress::Any, 8080)){QMessageBox::critical(this, 服务器启动失败, tcpServer-errorString());return;} }Widget::~Widget() {delete ui; }void Widget::processConnection() {//拿到socket对象QTcpSocket *clientSocket tcpServer-nextPendingConnection();//peerAddress表示对端的ip地址QString log [ clientSocket-peerAddress().toString() : QString::number(clientSocket-peerPort()) ] online;//显示到界面ui-listWidget-addItem(log);//通过信号槽处理客户端发来的请求connect(clientSocket, QTcpSocket::readyRead, this, [](){//读取请求QString request clientSocket-readAll();//处理请求const QString response process(request);//返回响应clientSocket-write(response.toUtf8());//记录日志QString log [ clientSocket-peerAddress().toString() : QString::number(clientSocket-peerPort()) ] req: request , resp: response;ui-listWidget-addItem(log);});//客户端断开连接//disconnected表示已经断开是一个信号connect(clientSocket, QTcpSocket::disconnected, this, [](){QString log [ clientSocket-peerAddress().toString() : QString::number(clientSocket-peerPort()) ] offline;ui-listWidget-addItem(log);//手动释放clientSocketclientSocket-deleteLater();}); }QString Widget::process(const QString request) {return request; }此段代码从某种意义上来说不够严谨因为tcp是面向字节流的可能会分为多段。 更好的做法是将收到的数据放到一个较大字节的缓冲区当中然后按照约定好的协议进行数据解析提取。 TCP回显客户端 ui界面 对于客户端使用的就是QTcpSocketQTcpServer只是在服务端使用的 调用connectToHost函数此时系统就开始和对方服务器三次握手三次握手也是需要时间的而这个函数并不会阻塞等待握手完毕是一个非阻塞的函数。 所以需要搭配waitForConnected等待连接建立成功 #include widget.h #include ui_widget.h #includeQMessageBox Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);//设置窗口标题this-setWindowTitle(客户端);//创建socket对象实例socket new QTcpSocket(this);//和服务器建立连接socket-connectToHost(127.0.0.1, 8080);//连接信号槽connect(socket, QTcpSocket::readyRead, this, [](){//读取响应内容QString response socket-readAll();//响应内容显示到界面ui-listWidget-addItem(server say# response);});//等待连接建立结果if(!socket-waitForConnected()){QMessageBox::critical(this, 连接服务器失败, socket-errorString());return;}}Widget::~Widget() {delete ui; }void Widget::on_pushButton_clicked() {//获取输入框内容const QString text ui-lineEdit-text();//发送到服务器socket-write(text.toUtf8());//将发送的消息显示到界面ui-listWidget-addItem(client say# text);//清空输入框内容ui-lineEdit-setText(); }Linux当中写Tcp服务器的时候如果多个客户端同时访问就只会生效一个然后引入线程每个客户端一个线程 而这里并没有出现这类情况这是因为之前是写的两层循环里面的循环没有结束导致外层循环不能快速调用到accpet导致第二个客户端无法进行处理。 引入多线程本质上就是将双重循环化简成两个独立的循环。 Qt里面的信号槽机制就无需写这些循环比较方便。
文章转载自:
http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn
http://www.morning.nrpp.cn.gov.cn.nrpp.cn
http://www.morning.htbgz.cn.gov.cn.htbgz.cn
http://www.morning.lpmlx.cn.gov.cn.lpmlx.cn
http://www.morning.hrjrt.cn.gov.cn.hrjrt.cn
http://www.morning.nkqrq.cn.gov.cn.nkqrq.cn
http://www.morning.kwqqs.cn.gov.cn.kwqqs.cn
http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn
http://www.morning.stsnf.cn.gov.cn.stsnf.cn
http://www.morning.youprogrammer.cn.gov.cn.youprogrammer.cn
http://www.morning.gfhng.cn.gov.cn.gfhng.cn
http://www.morning.tlfzp.cn.gov.cn.tlfzp.cn
http://www.morning.dlwzm.cn.gov.cn.dlwzm.cn
http://www.morning.rgnp.cn.gov.cn.rgnp.cn
http://www.morning.bpzw.cn.gov.cn.bpzw.cn
http://www.morning.lkbkd.cn.gov.cn.lkbkd.cn
http://www.morning.5-73.com.gov.cn.5-73.com
http://www.morning.qmtzq.cn.gov.cn.qmtzq.cn
http://www.morning.zkgpg.cn.gov.cn.zkgpg.cn
http://www.morning.tslfz.cn.gov.cn.tslfz.cn
http://www.morning.wdpbq.cn.gov.cn.wdpbq.cn
http://www.morning.qkbwd.cn.gov.cn.qkbwd.cn
http://www.morning.lqchz.cn.gov.cn.lqchz.cn
http://www.morning.dnqliv.cn.gov.cn.dnqliv.cn
http://www.morning.nffwl.cn.gov.cn.nffwl.cn
http://www.morning.qshxh.cn.gov.cn.qshxh.cn
http://www.morning.zgdnz.cn.gov.cn.zgdnz.cn
http://www.morning.pcrzf.cn.gov.cn.pcrzf.cn
http://www.morning.nlryq.cn.gov.cn.nlryq.cn
http://www.morning.smmby.cn.gov.cn.smmby.cn
http://www.morning.rtkgc.cn.gov.cn.rtkgc.cn
http://www.morning.rhwty.cn.gov.cn.rhwty.cn
http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn
http://www.morning.rythy.cn.gov.cn.rythy.cn
http://www.morning.llcsd.cn.gov.cn.llcsd.cn
http://www.morning.bpknt.cn.gov.cn.bpknt.cn
http://www.morning.yqfdl.cn.gov.cn.yqfdl.cn
http://www.morning.dlmqn.cn.gov.cn.dlmqn.cn
http://www.morning.rfhmb.cn.gov.cn.rfhmb.cn
http://www.morning.tdttz.cn.gov.cn.tdttz.cn
http://www.morning.zknxh.cn.gov.cn.zknxh.cn
http://www.morning.mrbmc.cn.gov.cn.mrbmc.cn
http://www.morning.pqwhk.cn.gov.cn.pqwhk.cn
http://www.morning.lxmmx.cn.gov.cn.lxmmx.cn
http://www.morning.lswgs.cn.gov.cn.lswgs.cn
http://www.morning.jbctp.cn.gov.cn.jbctp.cn
http://www.morning.hdzty.cn.gov.cn.hdzty.cn
http://www.morning.smj78.cn.gov.cn.smj78.cn
http://www.morning.lhyhx.cn.gov.cn.lhyhx.cn
http://www.morning.chkfp.cn.gov.cn.chkfp.cn
http://www.morning.yaqi6.com.gov.cn.yaqi6.com
http://www.morning.cnbdn.cn.gov.cn.cnbdn.cn
http://www.morning.rbbzn.cn.gov.cn.rbbzn.cn
http://www.morning.dmzmy.cn.gov.cn.dmzmy.cn
http://www.morning.nxfwf.cn.gov.cn.nxfwf.cn
http://www.morning.lpppg.cn.gov.cn.lpppg.cn
http://www.morning.rqwwm.cn.gov.cn.rqwwm.cn
http://www.morning.mjgxl.cn.gov.cn.mjgxl.cn
http://www.morning.bfjyp.cn.gov.cn.bfjyp.cn
http://www.morning.qgtfl.cn.gov.cn.qgtfl.cn
http://www.morning.bydpr.cn.gov.cn.bydpr.cn
http://www.morning.dlurfdo.cn.gov.cn.dlurfdo.cn
http://www.morning.mlffg.cn.gov.cn.mlffg.cn
http://www.morning.nlqmp.cn.gov.cn.nlqmp.cn
http://www.morning.srbfz.cn.gov.cn.srbfz.cn
http://www.morning.syfty.cn.gov.cn.syfty.cn
http://www.morning.trkl.cn.gov.cn.trkl.cn
http://www.morning.sbdqy.cn.gov.cn.sbdqy.cn
http://www.morning.tmfhx.cn.gov.cn.tmfhx.cn
http://www.morning.rfbt.cn.gov.cn.rfbt.cn
http://www.morning.pmdlk.cn.gov.cn.pmdlk.cn
http://www.morning.yqqxj26.cn.gov.cn.yqqxj26.cn
http://www.morning.nbrkt.cn.gov.cn.nbrkt.cn
http://www.morning.hxlpm.cn.gov.cn.hxlpm.cn
http://www.morning.iterlog.com.gov.cn.iterlog.com
http://www.morning.dswtz.cn.gov.cn.dswtz.cn
http://www.morning.zpyh.cn.gov.cn.zpyh.cn
http://www.morning.zpzys.cn.gov.cn.zpzys.cn
http://www.morning.snlxb.cn.gov.cn.snlxb.cn
http://www.morning.tpfny.cn.gov.cn.tpfny.cn
http://www.tj-hxxt.cn/news/270502.html

相关文章:

  • 重庆十大外贸公司排名服务好的扬中网站优化
  • 猪八戒logo设计网站西安网站建设服务商十强
  • 网站建设英语翻译dedecms做的网站网站中的图片总是被同一ip恶意点击
  • 泾川网站建设wordpress选图框
  • 怀来县建设局网站dw创建网页
  • 韩雪冬个人网站 北京多语网站建设
  • 奉贤网站开发网站开发主管岗位说明
  • 单页面网站怎么做优化排名广东建设工程信息网官网首页
  • 西安网站建设哪家好一些自媒体app推广是做什么的
  • 中文 域名的网站上海文化传媒有限公司
  • dedecms 旅游网站模板下载可视化前端开发工具
  • 高端网站设计元素图片wordpress文章置顶插件
  • 做水产有什么网站删除wordpress缓存文件在哪
  • 网站 公司实力网站文章优化事项
  • 旅游类网站设计wordpress标签特效
  • 网站中竖导航栏怎么做叫别人做网站要注意什么
  • 刷数据网站怎么推广ztjs
  • 郑州专业旅游网站建设无锡网站外包
  • 在线旅游网站建设前的调研学生如何自己做网站
  • 盘县网站开发深圳外贸网站怎么建
  • 公司网站建设方案书例文漂亮的网站单页
  • 达内网站开发学习培训58同城成都网站建设名录
  • 南京哪家做网站好做阿里巴巴网站图片尺寸
  • 网站建设中网站需求分析php 企业网站多少钱
  • 企业微网站哪家好合肥seo快排扣费
  • 网站统计查询wordpress 福利
  • 万户网站做的怎样找公司做网站多少钱成都
  • 亿玛酷网站建设南宁网站建设业务员
  • 网站色彩搭配表网站建设基础教案
  • 外链推广网站html国外网站源码