我有一個應用程序需要與遠程計算機上的客戶端配對。可以在服務器上運行該應用程序的多個實例,每個實例服務於不同的客戶端,可能多達25-30對。如何在差異機器上與多個客戶端連接的服務器中管理應用程序的多個實例
每對服務器 - 客戶端都需要有兩個TCP連接。服務器應用程序有2個進程,每個進程都有自己的tcp連接到客戶端。
- 工藝A的交流與客戶機命令
- 方法B從客戶端接收恆定的視頻流。
另外,還有每對流程A /方法B之間的另一個TCP連接
命令/數據將從如下流動:
客戶< - >方法A < --->方法B
而視頻將在該方向上流動:
客戶端 - >處理B
我需要幫助來確定什麼是建立所有tcp連接的最佳方法。誰設置了聽衆?如何確定要使用的端口?等
我現在有過程的一個實例的既進程B和客戶溝通,但它是所有在一臺機器上運行,所以我只是用「localhost」作爲我的主機名了。我也對我使用的2個端口進行了硬編碼,因此當我有多個實例時,我需要更改它以便每個實例使用不同的端口。
一旦過程A使與客戶機連接時,它需要向客戶端對一個端口,以便方法B可以與客戶端直接進行其它連接。這是做這件事的好方法,還是更好的方法?客戶如何確定可用的端口?
還有任何幫助或指示如何分配的端口,所以這可以與多個實例工作,將不勝感激。
謝謝,請詢問什麼說不清楚的問題。
編輯:其實進程A和進程B是兩個不同的應用程序。
感謝您的意見。實際上,流程A和B是兩個不同的應用程序,所以沒有父/子流程。沒有使用叉子。 – emge 2011-05-18 01:53:43
你說「讓客戶端連接到服務器上的已知端口」當我有幾個運行的服務器應用程序的實例時,這將如何工作。每個實例都需要位於不同的端口上。 – emge 2011-05-18 01:55:24
如果是兩個獨立的過程,你必須至少有兩個已知端口,PROC A和B.如果你不能得到PROC B到一個單一的過程,監聽和叉子掉孩子,然後爲每個PROC B,I」 d通過端口號找到處於A狀態的端口號。 proc A可以將此端口號發送給客戶端進行第二次連接。 – BMitch 2011-05-18 02:01:30