首先,这是c语言版,你这是cpp吧,而且不涉及语言本身,而是应用问题
针对bug,核心是定位,缩小范围来确定出错位置,然后才能找如何修改的办法
json格式本身就是一个文本格式,所以在通讯系统中,就是一个字符串
不存在简单和复杂的分别,只存在长度分别
对于你的问题,你可以在send前存储下发送内容,与recv后的接收内容进行比较;
用不同长度的json串来测,看是否是网络通讯的问题,比如常见的几个长度,
<1k,>1.5k,>64k
对于json乱码,你在send前,确认一下发送内容是否正常,看是否是json序列化的问题
还有一种问题,就是写岔了代码的bug,比如send(json1, sizeof(json2)) 这种情况
【 在 bigsen 的大作中提到: 】
: deepstream中用C++修改了dsexample插件,插件中进行了两个任务,1、利用std的json库对数据进行了json封装;2、采用一个封装好的网络模块对数据进行网络发送。程序编译、运行都没有问题,但是却出现了逻辑错误。错误描述如下:
: 1)如果json数据内容为非常简单的字符串,则对方能否收到相同的正确数据;如果json数据内容比较复杂,比如出现了[]嵌套内容、图片等,对方可以收到数据(也可能偶尔收不到),但解析到的数据内容错误,会出现乱码或者[]中的内容丢失;
: 2)在网络发送的最后一步,即send前记录日志,发送内容正常。在接收端的第一步,即recv后断点,即可发现数据内容错误;
: ...................
--
FROM 120.231.182.*