问题标签 [interprocess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
3224 浏览

c++ - 是否可以将函数加载到一些分配的内存中并从那里运行它?

我正在处理一些进程间通信的东西,我很好奇是否可以将一个函数复制到一些共享内存中并从任何一个进程中运行它。

就像是:

我意识到你不能接受函数的大小,但这就是我想到的。

0 投票
1 回答
1644 浏览

memory - 共享内存锁定和进程崩溃

我想尝试更好地理解共享内存同步的问题。我已经了解进程间同步在不同的操作系统上的工作方式不同。最大的区别是当锁定共享内存的进程崩溃时会发生什么。Windows 在进程崩溃后释放锁定的命名互斥锁,而 linux 不释放它。有人可以更好地解释我的问题,哪些是优势和劣势?在 linux 下,如何在进程崩溃后释放命名互斥锁或进程间信号量?我在互联网上搜索过,但没有找到能很好地解释问题和解决方案的人。

我希望有人能帮助我。对不起我的英语不好。

0 投票
2 回答
4768 浏览

c# - 在 C# + PHP 中使用命名管道进行进程间通信

在 C# 中使用命名管道进行进程间通信很容易,但我不确定如何在 php 中执行此操作,或者是否可能。所以我有这些问题:

  1. php中可以命名管道吗?
  2. 是否有可能有一个 C# 命名管道客户端,连接到一个 php 命名管道服务器?
  3. 我怎么会编码呢?:)

上述任何问题的答案都会很有帮助..谢谢:)

编辑:它是一个独立的 php 程序,而不是基于 Web 的应用程序。

edit2:命名管道服务器可以在C#端,也可以在PHP端,没关系。我已经为两者制作了 C# 示例.. 但我不知道从哪里开始 php

0 投票
1 回答
845 浏览

string - boost::interprocess::string 转换为 char*

是否可以将 a 转换为 aboost::interprocess::stringstd::stringa const char*?像c_str()...

例如:

我什至可以在非共享内存块中获取字符串的副本。

例如:

谢谢!

0 投票
1 回答
602 浏览

c# - 如何唤醒和启用 .NET Remoting 服务器的客户端以异步获取数据?

我需要使用 .NET Remoting 执行进程间通信。为此,我将以 Data(Objects) & Methods 的形式分享一些数据。

有什么方法可以让我的 .NET Remoting 客户端检测到是否有一些数据正在被共享,如果它只是继续收集这些数据。每次服务器服务器通过其共享的方法和对象共享数据时编组,应该让客户知道这是另一个过程。

服务器可以有多个客户端,数据可以在多个客户端(特定客户端或广播,即作为单独进程运行的每个客户端)共享。

在客户端,我将有一个专用线程来检查共享数据,如果它到达它将收集,否则就休眠。或者以某种方式每次服务器向特定客户端或多个客户端发送事件以使他们了解到达和共享数据。

这是.NET Remoting Events 公开的功能吗?我的 .NET Remoting 服务器是 C# 进程,客户端是 C++/CLI 进程。

问候乌斯曼

0 投票
2 回答
210 浏览

.net - 从 .NET 与非托管进程交谈

我正在使用 Process.Start 从 .NET 创建一个进程。新进程是一个遗留应用程序,用 C/C++ 编写。为了与它通信,我需要对其主线程执行相当于 PostThreadMessage 的操作。

我很乐意使用 P/Invoke 来调用 PostThreadMessage,但我看不到如何找到主线程。Process 对象有一个线程集合,但文档说集合中的第一项不必是主线程。Thread 对象本身似乎没有任何迹象表明它们是否是主要的。虽然我可以在创建进程后立即查看线程集合,但这并不能保证只有一个。

那么,有没有办法让我从.NET 中确定另一个进程的主线程,还是我需要求助于使用 Win32 的 CreateProcess?

谢谢,

鲍勃

0 投票
1 回答
405 浏览

delphi - 跨进程单例对象

这是我的另一个 Q的变体。我有两个应用程序,X 和 Y。它们必须在它们之间共享一个 COM 对象。X 将向该对象发送数据,Y 将响应从该应用程序发送的事件。在任何时候,X 或 Y 都可能被终止,但单例需要保持活动状态,直到两个应用程序都终止。
应该可以通过这种方式创建单例 COM 对象,但是如果 X 先启动并创建它,Y 然后启动并使用它,然后 X 停止,然后……单例会发生什么?
无论如何,有没有人用Delphi试过这个?

0 投票
3 回答
727 浏览

interprocess - Snoop 进程间通信

有没有人尝试创建进程间通信的日志文件?有人可以就实现这一目标的最佳方法给我一些建议吗?

0 投票
2 回答
1291 浏览

c++ - boost::interprocess 是否有“upgrade_to_unique_lock”?

我正在寻找在写入者偏向的读取器/写入器模型中在两个(或多个)进程之间有效共享数据块的最佳方法。

我目前的测试是boost::interprocess. 我已经创建了一些managed_shared_memory,并试图通过使用存储在共享内存中的进程间互斥锁来锁定对数据块的访问。

但是,即使在sharable_lockreader 和upgradable_lockwriter 上使用,客户端也会在写入操作期间读取碎片值而不是阻塞。在单个进程中的线程之间进行类似的读取器/写入器设置时,我曾经upgrade_to_unique_lock解决过这个问题。但是,我还没有找到它的boost::interprocess等价物。一个存在吗?

服务器(作者):

客户(读者)

我想手头更大的问题是:进程间互斥锁甚至是在写入器偏向设置中访问进程之间共享内存的正确方法吗?

注意:使用 Boost 1.44.0

0 投票
2 回答
5038 浏览

c++ - 'managed_shared_memory' 应该分配多少内存?(促进)

boost::interprocess我正在寻找一个明确的答案(如果确实存在的话),当通过's创建共享内存的静态块时应该分配多少内存managed_shared_memory。即使是官方的例子似乎也分配了任意大的内存块。

考虑以下结构:

我最初的反应是必要的大小是 8 个字节,或者sizeof(Point2D). 当我尝试构造一个对象时,这会惨遭失败,在运行时给我段错误。

什么读/写操作导致了段错误?堆栈操作?临时分配segment.construct()? 分配共享内存时需要多少开销?

通过反复试验,我发现将大小乘以 4 可以适用于上述结构,但是当我开始向我的struct. 所以,这听起来很糟糕。

有些人可能会争辩说现代 PC 中的“内存很便宜”,但我不同意这种理念,并且不喜欢分配比我需要的更多的东西,如果我可以避免的话。我昨天翻遍了 Boost 文档,找不到任何建议。今天来学习新的东西!