1
5
首先,让客户广播它的地址听起来很可怕,至少对我来说。广播意味着它只在服务器位于本地子网的情况下才工作,并且会用大量不必要的流量污染网络。 我会让客户通过DNS服务发现服务器( DNS-SD ). 这是你可以利用的优势 multicast DNS 其次,服务器应该 不 为每个客户端指定一个线程。而这个模型 可以 在某种程度上,它有相当多的开销和规模真的很差。 最后,对(我认为是)您最初的问题:我将为所有客户机使用一个端口,而不是为每个客户机使用不同的端口。来自客户机的每个请求都将携带足够的信息,以便服务器执行它包含的任何请求。服务器只需监听其单个端口,并在每个请求到达时为其提供服务。您可能会为此指定多个线程,但它应该是一个通用的线程池——也就是说,所涉及的线程数只是一个配置问题,对总体设计没有逻辑意义(即,特定线程的标识没有意义——如果您移动到一个更大的服务器上,它是mancore的8倍,添加更多线程只是配置更多线程的简单问题,而不是更改总体设计)。 |
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |