2010-10-12 105 views
2

我有一個「服務器」進程正在運行,它將通過網絡爲與服務器進程運行在同一臺機器上的其他進程獲取數據。進程間通信:一臺服務器和多臺客戶機

我該如何從本地服務器進程和本地客戶端傳輸數據?

+0

你在使用什麼操作系統? – 2010-10-12 04:10:49

+0

我在Windows上。 – martin71 2010-10-12 04:43:32

回答

2

對於服務器進程檢索網絡數據,@radman建議的Boost.Asio是一個不錯的選擇。

在服務器和本地客戶端之間,Boost.Interprocess會更高效,因爲這是進程間數據傳輸,不需要網絡使用。

這些Boost庫中的每一個都爲複雜的底層Win32 API提供了一個可立即運行的包裝,因此使用庫比通過構建您自己的具有等效功能的特殊用途代碼更快地獲得工作解決方案。

0

標準TCP套接字適用於同一機器或不同機器上多個進程之間的進程間通信。它是標準的,幾乎可以在所有平臺和幾乎所有的編程語言中使用。您應該能夠輕鬆找到示例C++代碼。

要連接到同一臺機器上的套接字,請使用「localhost」作爲其名稱或127.0.0.1作爲其IP。

0

我相信Windows有命名管道,這將工作類似於其他答案中的建議(特別是@ Irish的TCP套接字建議)。詳情請參閱CreateNamedPipe()

相關問題