我正在设计一个数据分配器(例如生成随机数),它将为多个客户端提供服务。多个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会长时间不必要地等待。
鉴于我的数据分销商将服务于很多客户,他们中的哪一个似乎是有效的方式?