使用.NET网络库的多个同时HTTP请求

时间:2012-04-29 06:06:50

标签: c# .net http networking asynchronous

我在专用LAN网段中有许多设备(IP摄像机),连接到PC。设备支持使用HTTP协议进行单独的JPEG帧传输。 我需要尽可能同时向所有设备发送HTTP请求。获取图像可能需要不同的时间,这没有任何区别。现代中级CPU上第一个和最后一个请求之间的毫秒数会很好。 (我知道,我正在使用非实时系统)。

设备的峰值数据传输速率约为50 Mbps,与LAN网段的PC连接速率为1000Mbps。设备数量约为10。 HTTP请求的典型大小约为150字节,响应为40..200 KB。

现在我使用DownloadDataAsync类的WebClient方法,每个设备都有一个实例。但是有更有效的方法吗?

2 个答案:

答案 0 :(得分:0)

您自己给出了答案:HttpWebRequest稍快一些,因为它的开销较低。但是,要比这更快,将很难实现。

编辑:当然,您可以使用原始套接字来驱动HTTP协议。不过,这将是很多工作。

答案 1 :(得分:0)

取决于摄像机的工作方式和网络布局......

您可以使用多播套接字: article 1 article 2

最有效率..

如果您的LAN尺寸较小(大致仅由相机和控制器组成) 你可以使用广播,但这对组播(只有一些路由器处理时间)的收益很少