2011-11-24 66 views
0

我來到這裏與相當哲學問題:分佈式網絡由相同的應用程序

假設我們有兩個相同的應用程序,具有相似的設置範圍。 ,我們希望這些應用程序可以通過套接字進行通信。

據我所知,在點對點的應用程序中,其中一個應該是活動的(客戶端)和passiv(服務器),即客戶端做「連接」,服務器應該處於「接受」狀態。這導致我們有必要在運行之前知道誰是活躍的,誰不是活躍的。正如我前面所提到

我想使這個應用程序是相同的。並讓兩個相同的應用程序可以連接投網,從而做出明智的決定誰是誰。

這個問題被認爲是由於,我想每一個新的應用程序可以連接到其他應用程序的網絡與其中一人只知道IP地址的事實。

免責聲明:這不是一個惡意軟件。它是ERP系統的一個傳輸層。

我會很高興的任何想法,鏈接等

回答

2

選項:

  • 指定一個應用始終是服務器。它開始監聽某個端口,而另一個應用啓動時會嘗試重複連接服務器,直到成功爲止。
  • 同時擁有同時充當服務器和客戶端。啓動一臺主機上的應用程序並嘗試連接到另一臺主機,如果無法啓動,則啓動一臺服務器,偵聽來自另一臺主機的連接。其他主機上的應用程序也一樣。應該添加重試以避免競爭條件。
  • 讓他們各自作爲客戶端和連接到第三個服務器。然後,他們通過該服務器進行通信,或者服務器告訴他們如何與另一個(例如服務器可能會告訴一個應用是服務器,並告訴其他應用程序是一個客戶端)進行通信。
+0

除了#2:如果它們在啓動時都充當服務器,然後嘗試連接到對方,那麼您必須處理的唯一問題是如果兩個都成功並解決了這個問題,只需要其中一個連接必須被丟棄。 –

相關問題