问题标签 [ipc]

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 投票
3 回答
2792 浏览

c# - 将数据传递给 .NET C# WPF 应用程序/DLL

我有一个 .NET C# WPF 应用程序,我正在尝试使用 Mutex 将其制成单实例应用程序。

此 .NET 应用程序由基于 C++ 的 DLL 使用 CreateProcessAsUser() 调用,并通过环境变量获得参数。

后续实例也将由 C++ DLL 以相同方式创建。

随后的实例需要在退出之前将它们的参数传递给应用程序的第一个实例。

问题是在 .NET 应用程序中可以使用哪些方法,以便后续实例能够将它们的数据传递给 .NET 应用程序的第一个实例?越简单越好。

我研究了一些,但我希望有更简单的方法。

我研究过的东西:

  • 命名管道
  • .NET 远程处理
  • Windows 消息(将 WM_COPYDATA 发送到第一个实例窗口)

由于我只是想将 4 个字符串传递给第一个实例,因此我试图避免使用上述方法,因为它们对我的问题来说有点矫枉过正。

我能想到的最简单的方法是从 .NET 应用程序中导出一个函数,这样 .NET 应用程序的后续实例就可以在 .NET 应用程序的第一个实例上调用此函数并将数据作为函数的参数传递. 但是,这在 .NET 中可行吗?我读过 .NET EXE 或 DLL 无法导出函数。

谢谢!

0 投票
4 回答
7024 浏览

c - 什么是嵌入式 Linux 的好的开源消息总线?

我正在寻找适合嵌入式 Linux 设备(Linux 和 uClinux)的良好开源消息总线。

它需要满足以下条件:

  • 由于 uClinux 仅支持静态链接,因此必须是自由软件和 LGPL 或更自由的许可证
  • 必须有 C API
  • 必须具有相对较小的占用空间,并且不依赖于第三方库
  • 必须兼容 Linux/uClinux 2.4.22+
  • 应该经过良好的测试,最好有一个现有的测试框架设置
  • 应该有一个有据可查的协议
  • 应该可以移植到其他平台

消息总线主要由我们系统上的应用程序使用,以传达配置参数等,因此它不需要满足实时要求。

0 投票
2 回答
2445 浏览

windows - 如何在 Windows 中组合 GUI 应用程序

我有一个使用 Qt 框架的 Windows GUI 应用程序(当前版本为 3.3.5,可能会更改为 Qt4)。

我想在主应用程序中组合其他 Windows GUI 应用程序。由于一些我无法控制的约束,我无法直接在主应用程序中使用这些小部件。最终布局应如下所示:

http://i.stack.imgur.com/RlK7T.png

目前我正在使用Hosting .exe applications into a dialog中概述的方法。为了传递HWND子应用程序,我在进程之间使用我自己的 IPC。然后,我需要使用resizeEvent调用::MoveWindow子窗口的 Qt 转发调整大小事件。

是否有更好或更通用的机制来执行此操作?有人建议我使用 ActiveX,但我对这项技术还不够熟悉。

0 投票
3 回答
4951 浏览

c# - .NET 和 Java 客户端应用程序之间的 IPC

我必须在没有任何代理或服务器的情况下获得两个不同的客户端应用程序对话。在 Java 和 .NET 这两个进程之间进行 IPC 的最佳方法是什么?

它必须能够在多用户终端服务器上工作,所以请不要使用套接字。我希望它是轻量级和简单的,即插即用的,所以请不要使用 RMI/WS。

我现在正在考虑使用 JNI 来访问互斥体和命名管道,我会朝着正确的方向前进吗?

欢迎任何想法!

谢谢丹尼斯

0 投票
1 回答
1621 浏览

ipc - D-Bus 可以在不是 Unix 域套接字的流上使用吗?

我在一个项目中使用 DBus。我从 DBus 规范中了解到,对于低级通信,它使用 Unix 域套接字。我不想使用 Unix 域套接字进行低级通信,因为我有一个修改后的connect()调用。是否有任何其他类型的 DBus 支持但不使用的低级通信connect()?如果是,那么如何切换到该模式?

0 投票
1 回答
290 浏览

.net - .NET2.0 Remoting - Why Is Registering A ClientChannel Necessary?

I have a client/server application that must use .NET Remoting (not WCF because the project is using Framework 2).

The following code (copied heavily from MSDN) works:

But what do these three lines do?

_clientChannel doesn't get used anywhere afterwards in the working code. The working code also seems to work without those three lines. Can I get rid of them without losing functionality?

0 投票
4 回答
1356 浏览

c++ - 简单的匿名管道 - 您使用什么包装器模型?(WinAPI, C++)

我在 Windows 中有两个正在运行的进程,每个进程都有一个到另一个进程的管道。

我想序列化一个复杂的类并将其从一个进程传输到另一个进程。我已经制定了序列化程序,并且我知道管道正在发送二进制流。我应该如何发送我的序列化数据?我正在使用 WinAPI 和 C++。

我应该开发自定义协议吗?如果是这样,它应该是这个特定类的通用还是唯一的?发送序列化类时可以保留虚拟表吗?

在这种情况下是否有常用的模型或设计模式?一些示例代码将不胜感激。谢谢!

0 投票
6 回答
30853 浏览

c++ - 从另一个应用程序窗口中的文本字段读取

Windows 应用程序有没有办法访问另一个应用程序的数据,更具体地说是 GUI 中的文本输入字段,并在那里获取文本以便在我们自己的应用程序中处理?

如果可能的话,有没有办法“屏蔽”你的应用程序来防止它?

编辑:前三个答案似乎是关于获取另一个应用程序窗口标题,而不是该窗口中的特定文本输入字段。

我不是 Windows API 期望的,所以你能否更准确地说我如何在该窗口中找到某个文本字段,它的先决条件是什么(似乎知道窗口句柄是必需的,它是否需要知道文本字段也处理?我怎么得到那个?等等......)

C++ 中的代码片段真的会非常感激。MSDN 帮助很难浏览,因为 Win32-API 有如此可怕的命名约定。

完全的!有关 C++ 的操作方法,请参阅下面的答案。

0 投票
3 回答
2364 浏览

perl - How can I handle multiple sockets within a Perl daemon with large memory usage?

I have created a client-server program with Perl using IO::Socket::INET. I access server through CGI based site. My server program will run as daemon and will accept multiple simultaneous connections. My server process consumes about 100MB of memory space (9 large arrays, many arrays...). I want these hashes to reside in memory and share them so that I don't have to create them for every connection. Hash creation takes 10-15 seconds.

Whenever a new connection is accepted through sockets, I fork a new process to take care of the processing for each connection received. Since parent process is huge, every time I fork, processor tries to allocate memory to a new child, but due to limited memory, it takes large time to spawn a new child, thereby increasing the response time. Many times it hangs down even for a single connection.

Parent process creates 9 large hashes. For each child, I need to refer to one or more hashes in read-only mode. I will not update hashes through child. I want to use something like copy-on-write, by which I can share whole 100mb or whole global variables created by parent with all child? or any other mechanism like threads. I expect the server will get minimum 100 request per second and it should be able to process all of them in parallel. On an average, a child will exit in 2 seconds.

I am using Cygwin on Windows XP with only 1GB of RAM. I am not finding any way to overcome this issue. Can you suggest something? How can I share variables and also create 100 child processes per second and manage them and synchronize them,

Thanks.

0 投票
9 回答
91261 浏览

perl - 如何从 Perl 脚本中运行 Perl 脚本?

我有一个需要执行另一个 Perl 脚本的 Perl 脚本。第二个脚本可以直接在命令行上执行,但我需要在我的第一个程序中执行它。我需要向它传递一些参数,这些参数通常会在它独立运行时传入(第一个脚本定期运行,并在一组特定的系统条件下执行第二个脚本)。

初步的 Google 搜索建议使用反引号或 system() 调用。还有其他方法可以运行吗?(我猜是的,因为我们正在谈论的是 Perl :P)如果我需要从被调用的程序中捕获输出(并且,如果可能的话,当它执行到 stdout 时,就像第二个一样通过管道输出该输出)程序被直接调用)?

(编辑:哦,现在SO 提出了一些相关的问题。这个很接近,但与我要问的不完全相同。第二个程序可能需要一个小时或更长时间才能运行(大量 I/O),所以我不确定一次性调用是否适合此。)