【发布时间】:2026-01-18 12:55:01
【问题描述】:
我在 Visual Studio 2010 for c++ 中有一个应用程序 在 Windows Server 2008 r2 上
伪代码如下
创建多播套接字
while ( 仍然要传输的数据 == true ) { sendto(多播套接字,数据) }
但我只能达到大约 60k msgs/秒,其中每个数据包的大小约为 50 字节。
谁能建议如何每秒发送更多的消息? 我想我可以尝试绑定 2 个或更多 NIC 和 我应该尝试使用线程安全的消息队列和线程池吗? 每个线程只是试图从队列中拉出一个元素 和 sendto(多播套接字,数据); ?
这里有什么想法吗?
【问题讨论】:
-
您是否尝试通过多个千兆网卡发送数据?
-
我目前正在尝试通过单个 1G NIC 发送
-
60,000/s 似乎非常接近线路限制。每个数据包有多少字节的数据?
-
每个数据包大小约为50字节; 60k 消息/秒 * 50 字节 = 2.8 兆字节/秒。这远不及 NIC 的 1GB.sec 限制。但它每次都需要发送完整帧,即 MTU,即 1500 字节 60 000 * 1500 字节 = 0.670552254 千兆位/秒,这并不可怕,我只想接近 1.0
标签: c++ visual-studio-2010 udp