标签: ipc

在localhost上,如何选择一个空闲端口号?

我正在尝试进行进程间通信,因为我无法弄清楚如何在Windows下使用命名管道,我以为我会使用网络套接字.一切都在当地发生.服务器能够在单独的进程中启动从属服务器并侦听某个端口.奴隶完成他们的工作并将结果提交给主人.我如何确定哪个端口可用?我想我不能听80或21端口?

我正在使用Python,如果这会减少选择.

谢谢!

python sockets port ipc

145
推荐指数
4
解决办法
10万
查看次数

标签或窗口之间的通信

我正在寻找一种方法,如何在浏览器中的多个选项卡或窗口之间进行通信(在同一个域上,而不是CORS),而不留痕迹.有几个解决方案:

  1. 使用窗口对象
  2. 的postMessage
  3. 饼干
  4. localStorage的

第一个可能是最糟糕的解决方案 - 你需要从当前窗口打开一个窗口,然后只要你打开窗户就可以进行通信.如果您在任何窗口中重新加载页面,则很可能会丢失通信.

第二种方法,使用postMessage,可能启用跨源通信,但遇到与第一种方法相同的问题.您需要维护一个窗口对象.

第三种方式,使用cookie,在浏览器中存储一些数据,这可以有效地看起来像向同一域上的所有窗口发送消息,但问题是你永远不知道所有标签是否已经读过"消息"打扫干净.您必须实现某种超时以定期读取cookie.此外,您受限于最大cookie长度,即4KB.

使用localStorage的第四种解决方案似乎克服了cookie的限制,甚至可以使用事件进行监听.接受的答案中描述了如何使用它.

编辑2018:接受的答案仍然有效,但现代浏览器有一个更新的解决方案,使用BroadcastChannel.有关如何使用BroadcastChannel在选项卡之间轻松传输消息的简单示例,请参阅其他答案.

javascript browser html5 ipc broadcast-channel

136
推荐指数
7
解决办法
7万
查看次数

结合node.js和Python

Node.js是我们的Web项目的完美匹配,但我们更喜欢Python的计算任务很少.我们还有一个Python代码.我们高度关注速度,如何以异步非阻塞方式从node.js调用Python"worker"的最优雅方式是什么?

python ipc node.js

125
推荐指数
5
解决办法
11万
查看次数

命名管道的示例

我如何编写一个简单的 - 最简单的工作 - 测试应用程序,说明如何使用IPC /命名管道?

例如,如何编写一个控制台应用程序,程序1将"Hello World"写入程序2,程序2接收消息并将"Roger That"回复给程序1.

c# ipc named-pipes

124
推荐指数
4
解决办法
11万
查看次数

在Linux中使用多个线程进行信号处理

在Linux中,当程序(可能有多个线程)收到SIGTERM或SIGHUP等信号时会发生什么?

哪个线程截获信号?多个线程可以获得相同的信号吗?是否有专门用于处理信号的特殊线程?如果没有,那么处理信号的线程内部会发生什么?信号处理程序例程结束后如何恢复执行?

c linux multithreading signals ipc

113
推荐指数
2
解决办法
6万
查看次数

Java和C/C++之间进程间通信的最快(低延迟)方法

我有一个Java应用程序,通过TCP套接字连接到用C/C++开发的"服务器".

app和server都运行在同一台机器上,一个Solaris机箱(但我们最终考虑迁移到Linux).交换的数据类型是简单的消息(登录,登录ACK,然后客户端要求的东西,服务器回复).每条消息长约300字节.

目前我们正在使用套接字,一切正常,但我正在寻找一种更快的方式来交换数据(更低的延迟),使用IPC方法.

我一直在研究网络,并提出了以下技术的参考:

  • 共享内存
  • 管道
  • 队列
  • 以及所谓的DMA(直接内存访问)

但我无法找到他们各自的性能适当的分析,无论是如何实现它们在Java和C/C++(这样他们可以互相交谈),也许除了管我能想象该怎么办.

在这种情况下,任何人都可以评论每种方法的表现和可行性吗?任何有用的实现信息的指针/链接?


编辑/更新

按照我在这里的评论和答案,我发现了有关Unix域套接字的信息,它似乎是通过管道构建的,并且可以节省整个TCP堆栈.它是特定于平台的,因此我计划使用JNI或者judsjunixsocket进行测试.

接下来可能的步骤是直接实现管道,然后共享内存,虽然我已被警告过额外的复杂程度......


谢谢你的帮助

c++ java performance latency ipc

99
推荐指数
6
解决办法
6万
查看次数

IPC性能:命名管道与插座

每个人似乎都说命名管道比插座IPC快.他们快多快了?我更喜欢使用套接字,因为它们可以进行双向通信并且非常灵活,但如果数量相当大,则会选择速度而不是灵活性.

sockets linux performance ipc named-pipes

98
推荐指数
12
解决办法
9万
查看次数

.NET进程间通信的最佳选择是什么?

我应该使用命名管道或.NET Remoting与我的机器上正在运行的进程通信吗?

.net c# ipc process

81
推荐指数
3
解决办法
8万
查看次数

System V IPC与POSIX IPC

  1. System V IPC和之间有什么区别POSIX IPC
  2. 为什么我们有两个标准?
  3. 如何确定使用哪些IPC功能?

posix ipc sysv

78
推荐指数
3
解决办法
5万
查看次数

比较Unix/Linux IPC

Unix/Linux提供了大量的IPC:管道,套接字,共享内存,dbus,消息队列......

每种应用最合适的应用是什么?它们的表现如何?

unix linux ipc

76
推荐指数
4
解决办法
4万
查看次数