cpp-ipc icon indicating copy to clipboard operation
cpp-ipc copied to clipboard

C++ IPC Library: A high-performance inter-process communication using shared memory on Linux/Windows.

Results 43 cpp-ipc issues
Sort by recently updated
recently updated
newest added

当发送方速度很快,接收方跟不上的时候,接收方会异常阻塞卡死,怀疑是同步控制有问题。 在win平台下,vs2019编译环境,64位debug,创建控制台项目,有如下源代码: #include #include #include #include #include "libipc/ipc.h" constexpr char const name__[] = "ipc-chat"; ipc::channel sender__{ name__, ipc::sender }; ipc::channel receiver__{ name__, ipc::receiver }; int main() { std::thread receiver([]() {...

Due to statically declared objects, some artifacts aren't removed from /dev/shm when the ipc::chan object is destroyed. Steps to reproduce: Attached sample code: [ipc_plain.cpp.txt](https://github.com/mutouyun/cpp-ipc/files/7277212/ipc_plain.cpp.txt) - Place breakpoint at line 35...

mutouyun, 谢谢你分享的这个项目! 目前我有个程序打算使用你的这个项目。 我的程序是同一台机器上上类似C/S的进程间通信。一个Server,多个client,client向server发送请求,server只是被动响应客户端的请求,msg可能会比较大,几百K到几兆。 我希望是每个client和server之间有专用的IPC通道,甚至server可以为每个通道建立专用的thread。 研究了一下,不知道如何建立这样的IPC通道,希望能得到你的指点。 谢谢! paul

在unicast模式下,当存在多个接收者时,大小超过large_msg_limit的数据包在拼包时会错乱。 原因: - 拼包逻辑没考虑unicast模式,这种模式下每个接收者各自消费的消息,其它接收者就看不到了

bug

你好!mutouyun 我在看代码的时候,以下两个代码没有明白,可否帮忙解析一下,谢谢 allloc.h中 static void** node_p(void* node) { return reinterpret_cast(node); } static auto& next(void* node) { return *node_p(node); } 另外内存池中的内存随着数据频率发送的越高,其内存一直在增加,我的程序在引用的时候,每个数据大小概是16w左右/100ms,内存一直持续在增加,达到了1G之上,当暂亭发送的时候,内存池的内存也不见释放。请问这种情况如何处理? 谢谢!

比如想实现类似HTTP请求的功能,需要用到ipc::channel支持多写多读。怎么实现进程1同一时刻多发,进程2同一时刻多收,分发处理,分发响应,不需要Lock?

您好!打扰了。我有一个需求。一个父进程,需要和多个子进程(10个左右)通信,请问怎么利用您这个库,有没有具体例子,恳请指教,谢谢!

当之前的接收进展不正常退出时, 此时对应的接收进程没有正常退出, 相应的que__的recv_conn次数也不会下降, 以至达到最大数量32... 有没有方便的接口可以快速清楚之前生成的所有接收进程?

你好 mutouyun, 我发现channel 是 时,运行demo中的send_recv 例子,./send_recv send 102400 100 发送端启动命令,运行一会后客户端就被踢掉了,服务端log "fail: send, there is no receiver on this connection." 但是如果channel 是 发送端 可以发送更大的数据并且 时间间隔更小甚至循环发送,间隔时间为0都没有问题,此时接收端仍然可以正常接收数据,这两个结果差距太大了,为什么在channel 是 性能这么弱? 另外一个问题是try_send 和 send,这个两个接口的区别就是send 在阻塞并且超时后会踢掉阻塞的客户端,但是try_send...