【发布时间】:2014-04-16 08:11:25
【问题描述】:
我正在使用 C 在 Solaris 中开发一个 UDP 客户端模块,有 2 个设计模块:
(1) 创建一个socket,通过这个socket发送所有的消息。接收线程仅在此套接字上调用recvfrom。
(2) 创建一组套接字。发送消息时,从套接字池中随机选择一个套接字。接收线程需要在一组套接字上调用poll 或select。
当吞吐量较低时,我认为第一个设计模块是可以的。
如果吞吐量高,我想知道第二个设计模块是否可以更好? 因为它会将消息分发到一组套接字,这样可能会提高UDP数据报传递的成功率和效率。
【问题讨论】:
-
您期望的吞吐量是多少?运行速度是 10Mb、100Mb、1Gb、10Gb 还是 100Gb?此外,您的服务器有什么 CPU 和架构?有多少个核心,核心有多快?我想回答,但这很大程度上取决于这些问题。
标签: c sockets unix udp solaris