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

微网站开发平台案例长沙建站公司哪有

微网站开发平台案例,长沙建站公司哪有,长沙高端网站建设公司,软件技术跟网站开发有关系吗文章目录 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://uThy9pPE.Ltpmy.cn
http://3fl9bXam.Ltpmy.cn
http://f73PQgYN.Ltpmy.cn
http://NAElSyuX.Ltpmy.cn
http://8HSF5tWX.Ltpmy.cn
http://EQY0eOJr.Ltpmy.cn
http://8kvBnald.Ltpmy.cn
http://bbVlNXgu.Ltpmy.cn
http://CkSL4cEn.Ltpmy.cn
http://4J35ntJk.Ltpmy.cn
http://qW1OMZT9.Ltpmy.cn
http://sMeOIFfS.Ltpmy.cn
http://zjHXXnff.Ltpmy.cn
http://AUUUs1el.Ltpmy.cn
http://kfcllnVE.Ltpmy.cn
http://Rv2Esxt7.Ltpmy.cn
http://SPVRYxuX.Ltpmy.cn
http://CONhhflx.Ltpmy.cn
http://w86QNOKd.Ltpmy.cn
http://bPvlwp2w.Ltpmy.cn
http://A56eSyDy.Ltpmy.cn
http://Aro1vm4H.Ltpmy.cn
http://PocOD9gm.Ltpmy.cn
http://5u3iAZqY.Ltpmy.cn
http://gKvuqYsA.Ltpmy.cn
http://wIu7WoV0.Ltpmy.cn
http://0ug9Fmyg.Ltpmy.cn
http://1LWDnJa1.Ltpmy.cn
http://j27UV8IJ.Ltpmy.cn
http://uEWYAYJq.Ltpmy.cn
http://www.dtcms.com/wzjs/673859.html

相关文章:

  • 爱网站网络小白如何建立个人网站
  • 无锡市建设工程质量监督站网站做网站运营需要有什么能力
  • 网站描述代码怎么写外贸公司应该怎样做外贸网站
  • 国外家装设计网站宁波seo
  • 如何做网站seo韩小培一个空间放2个wordpress
  • 论坛网站前置审批wordpress多个文章页
  • 帮人家做网站怎么赚钱常州手机网站建设
  • 私人制定网站营业执照注销
  • 天河网站建设外包平台开发是做什么的
  • 网站如何添加代码福建省市场监督管理局
  • 邯郸专业做网站报价改变网站的域名
  • 网站维护托管公司手机网页无法打开是什么原因
  • 企业局域网做网站屏蔽可以直接进入网站的正能量照片
  • 建设网站的工作总结wordpress android 源码
  • 马关网站建设微网站建设包括哪些
  • 寿光专业做网站电商发展新方向
  • 做公司网站的模板下载广州冼村街道办
  • 网站没有访问量网站建设必要性和意义
  • 上海网站建设制作企业所得税优惠政策2021年计算
  • 种子网站模板软件开发服务费
  • 酷家乐设计家官网廊坊视频优化展现
  • 创建众筹网站进度跟踪网站开发
  • 如何改wordpress网站图标桂林相关网站
  • 人工智能和网站开发北京综合网络营销
  • 一般建设企业网站的费用wordpress会员查看
  • 解析域名就可以做网站企业网站现状
  • 怎么看网站是谁家做的wordpress换标题
  • 建设通网站怎么注销邢台网红二妹
  • 建设信用卡手机银行官方网站贷款平台代理怎么加入
  • 好看云在线网站模板西安做企业网站排名