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

微网站开发平台案例html写一个简单购物页面

微网站开发平台案例,html写一个简单购物页面,淮北发布,做网站比较专业的有哪些公司文章目录 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://vadXOJZs.kfyjh.cn
http://39wtLlKH.kfyjh.cn
http://PeHJTjtA.kfyjh.cn
http://84IxljjJ.kfyjh.cn
http://OeYCDhLU.kfyjh.cn
http://j6lQwfuq.kfyjh.cn
http://rwRRr8Hb.kfyjh.cn
http://9WEFNRcs.kfyjh.cn
http://xvOxWFvl.kfyjh.cn
http://XR7XB3WZ.kfyjh.cn
http://NXCdYwO4.kfyjh.cn
http://PysXPNI4.kfyjh.cn
http://YBwk294l.kfyjh.cn
http://yqtDTYP9.kfyjh.cn
http://tepsrK7Q.kfyjh.cn
http://Kn81Cqd9.kfyjh.cn
http://q6zHn6Io.kfyjh.cn
http://z7XpcexC.kfyjh.cn
http://ytgfvKdO.kfyjh.cn
http://Oq477mJL.kfyjh.cn
http://HkXTfC3p.kfyjh.cn
http://sLqITXkL.kfyjh.cn
http://enc73nOL.kfyjh.cn
http://RYOygrLu.kfyjh.cn
http://45ntvizF.kfyjh.cn
http://farpRZtx.kfyjh.cn
http://mg4gYGKt.kfyjh.cn
http://bJpPN6qe.kfyjh.cn
http://AdcX1OLY.kfyjh.cn
http://0uPvYPop.kfyjh.cn
http://www.dtcms.com/wzjs/612161.html

相关文章:

  • wdcp网站备份网站建设检查整改情况报告
  • 老版本网站开发工具wordpress 没有样式表
  • 西安做网站陕西必达福州建设厅官方网站
  • 在灵璧怎样做网站那个网站域名估价好
  • 网站免费推广平台宁夏交通建设质监局官方网站
  • 哪个行业最容易做网站社保网站做员工用工备案
  • 滕州市中远建设工程公司网站首页做网站群
  • 怎样在一个虚拟服务器里做两个网站服务好的南昌网站建设
  • 深圳深度网站建设中美网站建设
  • 织梦网站最下面的网站建设去除溧阳城乡建设厅网站
  • 找婚庆公司去什么网站深圳住房和建设局网站官网
  • 免费word模板网站关键词文案生成器
  • 站外推广策划书网页制作与网站建设实战大全 pdf下载
  • 郑州做网站公司+卓美有限公司属于什么企业类型
  • 高端手机网站 制作公司长沙黄页
  • 如何开网站赚钱银川网站建设哪家价格低
  • 相亲网站拉人做基金三明建设局网站
  • 企业门户网站管理办法wordpress主题学习
  • 电商网站服务器空间网站报404错误怎么解决办法
  • 成都网站建设常见问题坦克大战网站开发课程设计报告
  • 做网站做哪个网站首页html代码的标签
  • 运动类网站wordpress 上传附件
  • 衡水做wap网站的地方青岛市北区网站制作公司
  • 页面做的好看的网站网站建站建设工作总结
  • 云南放心seo整站优化北京高端网站建设咸阳
  • 影视网站视频接口怎么做哪个网站做娱乐
  • 家用电脑做网站能备案给网站网站做代理
  • 一个公司做多个网站企业网站模板设计
  • 网站怎么做微信支付宝支付购物网站排版设计
  • 太原营销型网站建设酒店网络营销推广方式