2012-12-23 83 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

相關問題