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

公司网站开发费用放在什么科目建筑工程信息价哪里可以查询

公司网站开发费用放在什么科目,建筑工程信息价哪里可以查询,网站后台ftp替换图片怎么做,wordpress后台打开超级慢文章目录 redis 部分的错误oberver_channel_message测试测试代码问题订阅命令错误--分析原因 为什么客户端还会报空json呢问题分析但是!但是!改进 redis 部分的错误 oberver_channel_message测试 测试代码 // 在独立线程中接受订阅频道的消息--存在的意义 看订阅那里 void Re…

文章目录

  • redis 部分的错误
    • oberver_channel_message测试
    • 测试代码
    • 问题
    • 订阅命令错误--分析原因
  • 为什么客户端还会报空json呢
    • 问题分析
    • 但是!但是!
    • 改进

redis 部分的错误

oberver_channel_message测试

在这里插入图片描述

测试代码

// 在独立线程中接受订阅频道的消息--存在的意义 看订阅那里
void Redis::oberver_channel_message()
{redisReply *reply = nullptr;while (REDIS_OK == redisGetReply(this->_subscribe_context, (void **)&reply)){cout<<"jajjaja"<<endl;cout<<reply->dval<<endl;cout<<reply->element<<endl;cout<<1<<endl;cout<<reply->element[0]->str<<endl;cout<<2<<endl;cout<<reply->element[1]->str<<endl;cout<<3<<endl;cout.flush();// cout<<reply->element[2]->str<<endl;cout.flush();cout<<4<<endl;cout.flush();cout<<reply->elements<<endl;cout.flush();cout<<5<<endl;cout.flush();cout<<reply->integer<<endl;cout.flush();cout<<6<<endl;cout.flush();cout<<reply->len<<endl;cout<<7<<endl;// cout<<reply->str<<endl;cout<<8<<endl;cout<<reply->type<<endl;cout<<9<<endl;cout<<reply->vtype<<endl;cout<<10<<endl;// 订阅收到的消息 是一个带三个元素的数组if (reply != nullptr && reply->element[2] != nullptr && reply->element[2]->str != nullptr){// 给业务层上报通道上发生的消息_notify_message_handler(atoi(reply->element[1]->str), reply->element[2]->str);/*数组的下标1, 2对应 redis 回应的 (2)(3)1) "message"2) "13"3) "hello"*/}freeReplyObject(reply);}cerr << ">>>>>>>>>>>>>>>>>observer_channel_message quit<<<<<<<<<<<<<<<<<<<<" << endl;
}

问题

仅是个人理解, 记录一下,

cout<<reply->element[2]->str<<endl;

cout<<reply->str<<endl;

这两行 不注释, 服务器那边 会 的 打印 会停到 这两句的上一句

源码 还没看, 推测是, reply 里面的 str, , 做了 特殊处理, 应该是为了安全吧, 不让看,不让访问, 怎么输入, 都看不出来, 注释掉后, 会每通信一次, 就会打印一轮

订阅命令错误–分析原因

实际就是 昨天总结的那样, 就是访问 非法内存导致 段错误, 段错误触发的 SIGSEGV 信号 会导致 整个进程 崩溃

为什么客户端还会报空json呢

问题分析

char buffer[1024] = {0};               // 接收服务器返回的数据
len = recv(clientfd, buffer, 1024, 0); // 接收数据
cout<<"recv"<<endl;
cout<<buffer<<endl;
if (len < 0)
{cerr << "recv error" << endl;
}

这部分代码, 按理说, 服务器那边段错误, 也算是 异常退出

代码 应该终止在 recv函数这里,

但是!但是!

段错误崩溃 recv() 在本地会返回 0,就跟对方正常关闭是一样的!!!

这是最关键的, 也因为这个, buffer 本身就是空, 往后走, json反序列化 报 空json, 也就报 json空 的 错误了

改进

char buffer[1024] = {0};               // 接收服务器返回的数据
len = recv(clientfd, buffer, 1024, 0); // 接收数据if (len < 0 || len == 0)
{if(len == 0){cout<<"server quit!"<<endl;return 0;}else{cerr << "recv error" << endl;}}

文章转载自:

http://dzTLjt0k.wspyb.cn
http://nbsfEkV6.wspyb.cn
http://CkD2MJAv.wspyb.cn
http://8aaUnoq2.wspyb.cn
http://igQXbuoe.wspyb.cn
http://arrLvdFY.wspyb.cn
http://8sRDatxO.wspyb.cn
http://BclFcxWF.wspyb.cn
http://9WICOSFq.wspyb.cn
http://DYxsW2hL.wspyb.cn
http://map6aEut.wspyb.cn
http://xHN7CkFH.wspyb.cn
http://lbNJvJ58.wspyb.cn
http://qmtJT44C.wspyb.cn
http://gzX6SWPo.wspyb.cn
http://J1WCyPDq.wspyb.cn
http://8i51L1gU.wspyb.cn
http://GzUgVC9Q.wspyb.cn
http://nWApsjGR.wspyb.cn
http://XHGMGEl6.wspyb.cn
http://dMbP5I7h.wspyb.cn
http://mxuZ5Zoi.wspyb.cn
http://PTPFhzqO.wspyb.cn
http://qS1ooWZE.wspyb.cn
http://MQCDA3Qx.wspyb.cn
http://exXLuLR3.wspyb.cn
http://fW1lPfSx.wspyb.cn
http://MAWOg2WA.wspyb.cn
http://SA0jtEO9.wspyb.cn
http://DkbVd8tm.wspyb.cn
http://www.dtcms.com/wzjs/600003.html

相关文章:

  • 做学术用的网站提升学历咨询
  • 开发商城网站公司哈尔滨网站建设的公司
  • 手机网站 免费 html长沙企业网站建设品牌
  • 网站开发所需要的技术广告制作公司哪家好
  • 百度竞价网站怎么做黑客以网站做跳板入侵方法
  • 贵阳建站网站空间单位
  • 做pcr查基因序列的网站企业网站备案 名称
  • 淄博网站建设hiddd网站制作优势
  • 厦门商务网站建设郑州seo服务公司
  • 艺术品网站开发网站开发需要什么专业的人才
  • 怎么做自动提卡网站网络舆情参考
  • 学校网站建设要求订阅号可以做微网站
  • 如何做好电商网站平面设计网站推广公司 优帮云
  • dede网站底部域名dns解析和网站建设
  • 还有用的网站建设网站账号密码不区分大小写
  • 企业网站建设的一般要素包括工程公司财务制度
  • 网站建设与开发学习最专业的网站建设哪家好
  • 沈阳市营商环境建设监督局网站做搜狗手机网站优化排
  • 网站优化与推广wordpress power
  • 个人网站的制作云主机放多个网站
  • 网站建设毕业设计怎么做宣传商务型的网站
  • 重庆网站设计方案网站排名代做
  • 建网站淄博软件工程师证书报考条件
  • 建设商业网站优化seo多少钱
  • 网站开发图片加载过慢如何优化手机端网站开发建设内容
  • 做网站外包创业网站优化推广多少钱
  • seo如何做网站建设app推广怎么做
  • 更改网站备案wordpress wptitle
  • 海外网站加速器免费wordpress基础主题站
  • 查网站流量查询工具网站怎么做高权重