2010-09-26 90 views
1

我使用C++開發了多個服務器需要使用發佈者/訂閱者模式相互通信的遊戲的服務器端。每臺服務器都預訂不同服務器上的一些事件。所有服務器位於同一網絡中,因此延遲和丟包應該非常低。服務器間通信應儘可能高效,因爲每秒都會發生許多事件。通過C++網絡進行的進程間通信

有沒有我可以用於此目的的圖書館?

任何幫助非常感謝

+0

什麼是您的操作系統和編譯器? – 2010-09-26 13:48:59

+0

服務器是基於Linux的,我們使用gcc編譯它 – 2010-09-28 15:41:34

回答

1

你應該能夠Boost.ASIO(用於異步套接字I/O)與Boost.Signals結合(對於觀察者模式)或Boost.Signals2(線程版本Boost.Signals),以達到你想要的東西。

有一個簡單的例子顯示了這可能如何工作here。請注意,這在Boost.Signal上使用了一個包裝,但你明白了。

1

你基本上是在談論一個套接字庫。這與IPC不同,後者指的是計算機上的兩個或多個進程之間的進程間通信 - 與計算機相反 - 而不是通過網絡。網絡通信需要套接字編程,因此您可能需要一個優秀的高性能套接字庫。 Boost.ASIO是一個很好的C++可移植套接字庫,它提供了TCP和UDP套接字。

+2

實際上,IPC可以同時指:同一臺計算機上的多個進程的通信或者通過網絡連接的多臺計算機的通信。儘管如此,TCP/IP套接字是這個選擇的工具。 – Dubu 2010-09-26 16:15:31