2013-01-10 49 views
-1

有沒有辦法編寫C++程序來處理在Linux和Windows中工作的IPC? 是否有任何C++庫在不依賴於操作系統的情況下執行它?在C++中處理沒有os依賴的消息的方式是什麼?

+5

消息是相當重載...你能更具體嗎? – jozefg

+0

我們在這裏談論什麼樣的「消息」? –

+5

Nononoooo ...亨德爾是一位德國巴洛克式作曲家。你正在尋找的詞是「處理」。 – 2013-01-10 22:59:17

回答

3

如果「消息」你的意思是IPC(進程間通信),則沒有,它沒有操作系統的參與是不可能的,而且這樣做可能會是每個操作系統你可以在宇宙中找到不同的方式。如果通過「消息」你是指在應用程序中傳遞數據的任何方式,那麼是的,它可以也應該在沒有操作系統參與的情況下完成。

在IPC的情況下,總有Boost.IPC你可以使用,如果你只需要傳遞消息。當然,如果你還需要獲取UI事件等,那還不夠。 Qt是C++中常用的便攜式GUI工具包之一(不是它很漂亮,但它的工作原理)。

+4

Boost有IPC庫。使用下面的操作系統設施,但有時你可以閉上你的眼睛,假裝它不是。 :) – Eugene

+0

是的,我的意思是IPC。那麼,我需要編寫我的程序的兩個實例? – JalalJaberi

+1

@JalalJaberi:如果你很好,你只需要編寫兩個發送和接收消息的代碼實例。您可以創建一個統一的API和您自己的庫,爲每個操作系統實現API。 –

0

如果你談論的是插座(又名TCP/IP或UDP/IP),然後就可以使用套接字庫,如果你細心的話,你可以在Windows和Unix兩種變型相同的代碼工作。但是跨平臺套接字API只具有非常有限的異步功能(select調用及其相關的可伸縮性問題)。

你也可以使用libevent。這是跨平臺的,具有更豐富的異步語義。

類的東西命名管道或FIFO的......我不知道有良好的跨平臺庫這樣的事情的。

相關問題