我正在設計一個數據分配器(例如生成隨機數),它將爲多個客戶端提供服務。多個TCP連接vs單個連接
客戶端C首先將它感興趣的數字列表發送給DD上的TCP並監聽UDP上的數據。經過一段時間(幾分鐘)後,客戶可以通過向DD發送更多號碼來續訂其訂閱列表。
我可以用2種方法來設計它。
FIRST:
New_Client_Connected_Thread(int sock_fd)
{
--Get Subscription
--Add to UDP Publisher List
--close(sock_fd)
}
每次客戶想要訂閱新的數據集,將建立一個新的TCP連接。
第二:
這將需要New_Client_Connected_Thread(int sock_fd)
{
while(true)
{
--wait for new subscription list
--Get subscription
--Add to UDP Publisher List.
}
}
每個客戶端只有1個TCP連接。
但是,如果客戶端不發送新的請求,Client_Thread會長時間不必要地等待。
鑑於我的數據分銷商將服務於很多客戶,他們中的哪一個似乎是有效的方式?