进程间通信:一台服务器多客户端

     2023-02-16     207

关键词:

【中文标题】进程间通信:一台服务器多客户端【英文标题】:Interprocess communication: one server and multiple clients 【发布时间】:2010-10-12 04:08:39 【问题描述】:

我有一个“服务器”进程正在运行,它将通过网络为与服务器进程在同一台机器上运行的其他进程获取数据。

我应该如何从本地服务器进程和本地客户端传输数据?

【问题讨论】:

【参考方案1】:

对于通过服务器进程检索网络数据,@radman 建议的 Boost.Asio 是一个不错的选择。

在服务器和本地客户端之间,Boost.Interprocess 会更高效,因为这是进程间数据传输,不需要使用网络。

这些 Boost 库中的每一个都为复杂的底层 Win32 API 提供了一个可立即运行的包装器,因此与构建具有等效功能的自己的专用代码相比,使用这些库可能会更快地获得有效的解决方案。

【讨论】:

【参考方案2】:

您应该查看Boost.Asio,它符合您的问题并且很可靠。

【讨论】:

【参考方案3】:

标准 TCP 套接字适用于同一台机器或不同机器上的多个进程之间的进程间通信。它是标准的,几乎所有平台和几乎所有编程语言都支持。您应该能够轻松找到示例 C++ 代码。

要连接到同一台机器上的套接字,请使用“localhost”作为其名称或使用 127.0.0.1 作为其 IP。

【讨论】:

【参考方案4】:

我相信 Windows 已经命名了管道,它的工作方式与其他答案中的建议类似(尤其是@Irish 的 TCP 套接字建议)。详情请见CreateNamedPipe()。

【讨论】:

messenger进程间通信

...于:frameworks/base/core/java/android/os/IMessenger.aidl.  服务端与客户端通信,主要是在传输的消息上做了处理,让Message.replyTo指向的客户端的Messenger,而Messenger又持有客户端的一个 查看详情

ipc(进程间通信

...例子,使用进程间通信的两个应用可以被分类为客户端和服务器,客户端进程请求数据,服务端回 查看详情

微服务架构中的进程间通信(代码片段)

...式处理局部故障微服务架构中的进程间通信概述交互方式客户端与服务的交互方式可以分为两个维度,第一个维度关注的是一对一和一对多:一对一:每个客户端请求由一个服务实例来处理。一对多:每个客户端... 查看详情

进程间通信——管道深入

1、有名管道怎么实现C/S模型? 此时我要做的就是服务器端,跟客户端进行通信,必须的打开2个终端进行不同进程间的通信。 思路分析: i>、首先必须的有2个管道文件;服务器端创建一个管道文件,客户端创建一... 查看详情

C++如何实现进程间套接字通信?

...发布时间】:2013-07-1114:59:03【问题描述】:我想使用C++在服务器和多个客户端进程之间使用套接字设置进程间通信。服务器和所有客户端进程将在同一台Windows7计算机上运行。目的是std::vector的数据将由服务器保存并传输到每个... 查看详情

C中的进程间通信

...下:client(child)从标准输入读取文件名客户端通过管道向服务器发送文件名服务器(父)从管道中读取文件名服务器获取文件信息(statsyscall)服务器通过管道向客户端发送文件信息。客户端从管道读取文件信息并输出到标准输出... 查看详情

linux进程间通信异步信号处理机制

...验报告9、10章 第九章进程间通信(管道)实验9-4实现一个服务器和多个客户端之间的通信:(1)服务器创建一个有名管道,供客户端写入信息.(2)每个客户端为自己创建有名管道.供服务器写入信息.(3)客户端打印出发送到服务器的信息,... 查看详情

本地机器与多个独立进程(1个服务器,n个客户端)的进程间通信

】本地机器与多个独立进程(1个服务器,n个客户端)的进程间通信【英文标题】:Localmachineinterprocesscommunicationwithmultipleindependentprocesses(1server,nclients)【发布时间】:2018-12-1412:35:08【问题描述】:我想要一个接受简单消息的服务... 查看详情

进程间通信包创建

...】:我正在编写一个进程间通信协议,其中C#客户端调用服务器进程中的API,这些API将使用不同的语言(Java、C、C++等)编写。两个进程在同一台机器上运行,通信层本身不是问题(目前我使用的是套接字,因为它被大多数语言... 查看详情

进程间通信:MFC 服务器、.NET C# 客户端

】进程间通信:MFC服务器、.NETC#客户端【英文标题】:InterProcesscommunication:MFCserver,.NETC#client【发布时间】:2010-04-2619:13:56【问题描述】:我有两个使用命名管道交换字符串命令的MFCC++桌面应用程序。一切都很好,很可靠。现在,... 查看详情

androidipc进程间通信之aidl双向通信

...间通信之AIDL双向通信假设现在有两个App,一个是作为服务器端的App称之为:Server。另一个是作为客户端端的App称之为:Client。Server对外提供计算服务,为连接上的客户端端App:Client提供计算服务,Server这... 查看详情

androidbinder通信实现进程间通信

...0c;它可以用于在进程之间传递Binder引用。Binder机制允许在客户端进程和服务进程之间建立一个通信通道(communicationchannel),客户端可以通过这个通道向服务端发送请求,服务端可以处理请求并返回结果。Binder机制中的主要... 查看详情

进程间通信/广播

...是什么。该服务应将消息广播给所有以非阻塞方式列出的客户端。我考虑过使用命名管道或邮槽,但我不确定是否有更好 查看详情

31互斥锁与进程间通信

...果说多个进程共享同一个数据,比如抢火车票大家同时在客户端查看同时购买会出现什么问题呢?今天我们将讲述进程锁还有进程间通信,进程之间彼此隔离,他们需要一个第三方联系起来。 一、互斥锁进程之间数据隔离,... 查看详情

进程间通信方式及特点

1.管道无名管道是一种只用于父子进程间的半双工的通信方式。有名管道是可以在无亲缘关系进程间通信。2.信号量用来控制多进程或多线程对共享资源的访问,是一种多进程和多线程之间同步的手段。3.信号用来通知接收进程某... 查看详情

TCP 进程间通信会成为漏洞吗?

...816:22:19【问题描述】:我有一个IPC结构,其中客户端会向服务器进程发送“shelllike”(实际上并未在shell中执行)命令,例如:get-info1d8fec4b-c096-4ee6-b2d7-21eb1661212f并且服务器进程将响应 查看详情

Android进程间通信BroadcastReceiver、AIDL

...我正在开发一个应用程序,它应该可以从其他应用程序(服务器)接收一些对象。作为客户端应用程序的开发人员,应该尽可能简单地实现将对象发送到我的服务器应用程序所需的东西。我已经阅读了很多关于 查看详情

多进程编程之进程间通信-管道和消息队列

1.进程间通信Linux作为一种新兴的操作系统,几乎支持所有的Unix下常用的进程间通信方法:管道、消息队列、共享内存、信号量、套接口等等。2.2.1管道管道是进程间通信中最古老的方式,它包括无名管道和有名管道两种,前者... 查看详情