![]() |
1
5
首先,让客户广播它的地址听起来很可怕,至少对我来说。广播意味着它只在服务器位于本地子网的情况下才工作,并且会用大量不必要的流量污染网络。 我会让客户通过DNS服务发现服务器( DNS-SD ). 这是你可以利用的优势 multicast DNS 其次,服务器应该 不 为每个客户端指定一个线程。而这个模型 可以 在某种程度上,它有相当多的开销和规模真的很差。 最后,对(我认为是)您最初的问题:我将为所有客户机使用一个端口,而不是为每个客户机使用不同的端口。来自客户机的每个请求都将携带足够的信息,以便服务器执行它包含的任何请求。服务器只需监听其单个端口,并在每个请求到达时为其提供服务。您可能会为此指定多个线程,但它应该是一个通用的线程池——也就是说,所涉及的线程数只是一个配置问题,对总体设计没有逻辑意义(即,特定线程的标识没有意义——如果您移动到一个更大的服务器上,它是mancore的8倍,添加更多线程只是配置更多线程的简单问题,而不是更改总体设计)。 |
![]() |
slim71 · C-通过套接字向客户端发送UDP消息 7 年前 |
![]() |
alsaleem · 执行UDP套接字。接收开始收集还是可用? 7 年前 |
![]() |
ilya · 使用iperf3测量STM32板上的UDP吞吐量 7 年前 |
![]() |
Ephemera · 服务器能否直接连接其连接的两个套接字? 7 年前 |
![]() |
Jamboree · 跨NAT的UDP客户端无法从服务器接收数据 7 年前 |
![]() |
Niranjan Godbole · 无法在c中使用udp发送数据# 7 年前 |
![]() |
en Lopes · Java UDP服务器不工作 7 年前 |
![]() |
Iago SP · 如何在golang中发送假udp包 7 年前 |