2012-12-23 54 views
0

我需要将.NET应用程序的信号传递给Java应用程序。没有数据是必需的,信号本身就足够了。将.NET应用程序的信号传递给Java应用程序

这使我想到的最简单的方法是使用一个名为同步对象是这样的:

  1. 的.NET应用程序创建了一个名为某同步对象A.
  2. 的Java应用程序创建一个特定的命名同步对象A - 名称与(1)中的名称相同。
  3. Java应用程序有一个线程在对象上等待信号发送。
  4. .NET应用程序发信号通知对象。
  5. Java应用程序线程唤醒并作用于信号接收。

至少,如果我知道如何在Java中创建一个指定的同步对象,我该如何做。

但看起来像Java没有任何,我觉得很难相信。这是否意味着只有Windows命名了同步对象?

所以,我的问题是这样的 - 我如何将简单的信号(无数据)从非Java应用程序传递到Windows上的Java应用程序?两个进程都在同一主机上运行。

编辑

动机 - 我想发信号给我们的无头Java进程优雅尽快终止本身,因为它可以这样做。

回答

0

看在上帝的份上,我只是想从C++/C#程序的Java进程一个1个比特的信号并没有简单的方法来做到这一点。我无法相信。

忘掉它吧,我只是使用文件系统。 C++/C#代码将在众所周知的位置创建一个空文件,Java代码将每秒钟轮询一次。

Finito,故事结束。

3

你可以创建你的程序之间的套接字连接,并通过发送和接收特定模式,你可以检测到信号

+0

请同意我的看法,它比使用一个已命名的同步对象复杂得多。你想说Java不支持这个概念吗? – mark

+1

ye,或者它可能很难使用,并且tcp socket在每个平台上都非常简单可靠 – Kisame

+0

“Ye”,如“Java不支持已命名的同步对象”?你如何在两个Java进程之间进行同步?只使用消息传递或TCP套接字? – mark

0

我一想,我已被使用ICE框架之前完成,你可以下载和学习的ICE来自这里的框架, ICE框架是用于在本地系统或网络上的进程之间进行通信的交叉框架。

Download Ice Framework

相关问题