由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - ASIO TCP传送JSON如何知道包结束?
相关主题
JSONCPP和ASIO能否联合使用(C++11)?akka能和C++程序通信吗?
boost vs C++11本站身家超过32亿美元的著名程序员魏老师 (转载)
C++11使用感受及一些问题ASIO发送返回消息时需要timeout吗?
ASIO异步一问Does C++ have serializer and deserialzier
用ASIO写TCP/IP,同步还是异步 ?发现ramdisk不错,多个进程通信用文件就可以了,简单
An interview project: asynchronous socket programming有专门讲 message server performance 的资料吗
求建议:C++的TCP/IP编程库选择 WCF 还是 ASP.NET WebApi
C++ ASIO异步一问普通TCP还是HTTP?
相关话题的讨论汇总
话题: json话题: tcp话题: asio话题: read话题: 发送
进入Programming版参与讨论
1 (共1页)
b***i
发帖数: 3043
1
我用C++11和ASIO(从boost那里剥离出来的)来写TCP/IP。上位机向嵌入式发送JSON。
那么我用asio::async_read来读入所有的,结果handle_read没有被通知。有人说是TCP
是一个流,中间没有分割符。
现在我理解了,为什么软件组放弃了压缩传送JSON的方案,因为还要提前发送长度等信
息。
那么,我是不是可以用carriage return或者特殊字符来作为JSON的终止标记?就是用
asio::aync_read_until(..., 'n',...)来读入知道收到回车为止?大家是这么做的吗?
我不想用json{}的匹配来通知handle_read, 因为asio没有智能到和jsoncpp一起来判断
什么时候通知handle_read。我想要简单的方法来收到一个整个JSON,然后在解析。
c*********e
发帖数: 16335
2
发送前搞个暗号?芝麻开门。发送后搞个暗号?

TCP
吗?

【在 b***i 的大作中提到】
: 我用C++11和ASIO(从boost那里剥离出来的)来写TCP/IP。上位机向嵌入式发送JSON。
: 那么我用asio::async_read来读入所有的,结果handle_read没有被通知。有人说是TCP
: 是一个流,中间没有分割符。
: 现在我理解了,为什么软件组放弃了压缩传送JSON的方案,因为还要提前发送长度等信
: 息。
: 那么,我是不是可以用carriage return或者特殊字符来作为JSON的终止标记?就是用
: asio::aync_read_until(..., 'n',...)来读入知道收到回车为止?大家是这么做的吗?
: 我不想用json{}的匹配来通知handle_read, 因为asio没有智能到和jsoncpp一起来判断
: 什么时候通知handle_read。我想要简单的方法来收到一个整个JSON,然后在解析。

p***o
发帖数: 1252
3
TCP是一个流, 要么先加长度要么后加分隔符。

TCP
吗?

【在 b***i 的大作中提到】
: 我用C++11和ASIO(从boost那里剥离出来的)来写TCP/IP。上位机向嵌入式发送JSON。
: 那么我用asio::async_read来读入所有的,结果handle_read没有被通知。有人说是TCP
: 是一个流,中间没有分割符。
: 现在我理解了,为什么软件组放弃了压缩传送JSON的方案,因为还要提前发送长度等信
: 息。
: 那么,我是不是可以用carriage return或者特殊字符来作为JSON的终止标记?就是用
: asio::aync_read_until(..., 'n',...)来读入知道收到回车为止?大家是这么做的吗?
: 我不想用json{}的匹配来通知handle_read, 因为asio没有智能到和jsoncpp一起来判断
: 什么时候通知handle_read。我想要简单的方法来收到一个整个JSON,然后在解析。

L****8
发帖数: 3938
4
直接上ftp 折腾tcp干啥

TCP
吗?

【在 b***i 的大作中提到】
: 我用C++11和ASIO(从boost那里剥离出来的)来写TCP/IP。上位机向嵌入式发送JSON。
: 那么我用asio::async_read来读入所有的,结果handle_read没有被通知。有人说是TCP
: 是一个流,中间没有分割符。
: 现在我理解了,为什么软件组放弃了压缩传送JSON的方案,因为还要提前发送长度等信
: 息。
: 那么,我是不是可以用carriage return或者特殊字符来作为JSON的终止标记?就是用
: asio::aync_read_until(..., 'n',...)来读入知道收到回车为止?大家是这么做的吗?
: 我不想用json{}的匹配来通知handle_read, 因为asio没有智能到和jsoncpp一起来判断
: 什么时候通知handle_read。我想要简单的方法来收到一个整个JSON,然后在解析。

s******u
发帖数: 501
5
JSON都是可读的字符组成的,所以你随便拿个控制字符比方说
s*******m
发帖数: 58
6
如果你的发送接收逻辑比较简单,没有必要用ASIO,直接用socket
如果是一次性发送的话,你最好不要用裸的TCP。
ASIO支持HTTP,可以用它。
或者用thrift over TCP, 把你的JSON作为一个string,或者直接用thrift
serialization, 它也支持serialization to JSON,但没有必要
L*1
发帖数: 11537
7
Don't know why you want to implement the wheels yourself.
We use thrift server.
1 (共1页)
进入Programming版参与讨论
相关主题
普通TCP还是HTTP?用ASIO写TCP/IP,同步还是异步 ?
再说说我的Home Automation吧An interview project: asynchronous socket programming
ajax 页面为啥收不到response 呢?求建议:C++的TCP/IP编程库
有什么库可以自动把JSON转为DOM对象?C++ ASIO异步一问
JSONCPP和ASIO能否联合使用(C++11)?akka能和C++程序通信吗?
boost vs C++11本站身家超过32亿美元的著名程序员魏老师 (转载)
C++11使用感受及一些问题ASIO发送返回消息时需要timeout吗?
ASIO异步一问Does C++ have serializer and deserialzier
相关话题的讨论汇总
话题: json话题: tcp话题: asio话题: read话题: 发送