用socket(基于tcp协议)进行本地间多进程通信

本地进程:ipc server为服务端,维护一组连接进来的客户端socket fd,把每个客户端发过来的数据(透传)分发到全部连接进来的客户端.

本地进程:ipc client1为客户端1,客户端1连接服务端,并接受服务端分发的数据,判断该数据是否是自己需要的数据(订阅的数据),如果是就做出处理,否则扔掉.

本地进程:ipc client2为客户端2,客户端2连接服务端,并接受服务端分发的数据,判断该数据是否是自己需要的数据(订阅的数据),如果是就做出处理,否则扔掉.

本地进程:ipc client3为客户端3,客户端3连接服务端,并接受服务端分发的数据,判断该数据是否是自己需要的数据(订阅的数据),如果是就做出处理,否则扔掉.

......

客户端1与客户端3需要通信,则客户端1需要先订阅客户端3有关信息,客户端3发布数据(包含客户端1订阅的有关信息)到ipc server,ipc server分发到所有客户端,客户端1收到数据,判断数据,发现是已订阅客户端3的有关信息,做出相应处理.客户端2没有订阅,则扔掉数据.

......

其他客户端用类似方式进行进程通信,订阅的信息可以作为数据头拼接进数据包,客户端收到分发的数据,解析出数据头并与订阅信息比较,调用函数处理.

代码实现:

猜你喜欢

转载自www.cnblogs.com/jest549/p/11443971.html