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. |