Charley
Charley
谢谢您的建议~ 我现在使用不同的name创建不同组channel,实现了消息的”并发“dispatcher,消息包采用Jsoncpp来打包解析。这个库使我受益很大,后续要多多研究内部机制与实现。 还有一个问题想请教下,虽然是基于共享内存达到不同进程间的数据通信,但API接口接收都是const char* 或std::string。如果我想传递复杂类型,比如std::vector之类的三维数据点集,要从Jsoncpp封送为std::string,再调用API分发,这样效率大打折扣,有没其它更优的方式呢?
如果要将数据序列化,这性能就低了啊,我现在就是使用Jsoncpp序列化库。
我在cpp-ipc的基础之上,利用Boost共享内存机制解决了数据的“拷贝”问题。 ``` #define BOOST_USE_WINDOWS_H #include #include #include #include #include typedef boost::interprocess::managed_shared_memory::segment_manager segment_manager_t; typedef boost::interprocess::allocator void_allocator; typedef boost::interprocess::allocator shmem_allocator; typedef boost::interprocess::vector vector_vector3d; static boost::interprocess::managed_shared_memory segment(boost::interprocess::open_or_create, name_shared_memory__, addr_shared_memory__); static void_allocator alloc_inst(segment.get_segment_manager()); vector_points...
> 用 signal 捕捉一下,然后在触发的时候把调用栈打出来看看 可以同您微信沟通吗?我在C++方面经验不足,这样说还不太明白怎么去做? 另外,我用了这里的Tutorial,稍微改了下,代码如下: ``` #include #include "libipc/ipc.h" int main() { using namespace std::literals; std::size_t default_timeout = 3000; // ms std::vector const datas = { "hello!", //"foo", //"bar",...
如您所述,将这里注释掉就不会打印“Recv message is empty!”这条消息了。我没注意到哈~ `// cc.send(ipc::buff_t('\0'));`
通讯录好友列表能否支持字母索引?定位到具体位置