阅读:1851回复:2
帮帮我~~~
我要从网卡读取来自某设备的高速数据,在2000下编写NDIS的协议
驱动程序,由于速度较高,只能异步读写,我的协议驱动为 NTDDK下的packet程序,只是将TRANSMIT_PACKET常量变为64, 在WIN32应用连续发送64个ReadFile,然后用WaitForMultiObjectEx 等待异步事件的发生,可是当速率达到一定程度时,就开始丢包 发10000个包只能收到5000个,怎么解决这个问题还是用Protocol Driver 开发实时的数据采集根本就不行? 谁来告诉我呀~~~~ |
|
沙发#
发布于:2001-08-18 12:32
我有一个同事对packet进行了一点修改,他将所有的包全部存在packet的一个自定义链中(当然,有个包数上限),应用使用deviceiocontrol得到链中包数和长度,再使用readfile得到包内容。
如果你包处理能力较强,不会发生掉包现象,除非包数越过上限。 |
|
板凳#
发布于:2001-08-18 16:19
protocol driver不经过修改本身的处理能力已经比较强,
99年我做过试验,pII400+196M内存,插4块100M网卡, 短时间锋值速度下丢失率不超过1%。 注意你的应用层策略。尽可能的使用内存而不是硬盘, 提高接受线程优先级,精确异步操作处理。 |
|
|