2010-07-22 98 views
0

我曾在Unix應用程序,其中兩名申請人跑並且使用命令行彼此交談,即每過一個循環是這樣(把它當作僞代碼):兩個Windows應用程序可以使用命令行進行通信嗎?

bool stop=false; 
do 
{ 
    stringstring cmdBuffer; 
    cin >> cmdBuffer 
    string ret = processCommand(cmdBuffer); 
    if(ret.length()==0) 
    stop=true; 
    else 
    cout << ret; 
} 
while(!stop); 

有什麼理由二Windows應用程序無法做到這一點?他們是否必須在相同的「命令提示符」下運行或者是控制檯應用程序,還是命令行的概念不能在我面前看到命令提示符?

作爲參考,在我的情況下,一個應用程序將運行另一個應用程序,它們不是兩個單獨的應用程序獨立運行。

+0

Mh,有沒有人可以指出與此命名管道優勢?我現在看不到它...... – Bobby 2010-07-22 11:15:08

+2

最簡單的事情就是使用套接字,它的通用和跨平臺,因爲每個O/S都有類似的套接字API。 – uray 2010-07-22 11:20:03

+0

@Bobby:不,但我甚至都不知道Windows支持他們。 PS什麼是「Mh」 – 2010-07-22 11:28:19

回答

1

我會說重定向輸入和輸出句柄(SetStdHandle),但使用named pipe更安全,更安全,再加上你可以使用同步功能。

您也可以使用全局互斥/事件或映射內存,因爲兩者都是全局命名的,並且易於獲取/設置和讀取/寫入。

相關問題