3615|3

65

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于NdisSend发送数据包的流量统计 [复制链接]

  1.        
  2. MPSendPackets(){
  3. ....
  4.                        pAdapt->nTotalPacketsSeen[pVElan->NetworkConnection]++;
  5.                         // If the VElan sending the packet does not correspond to the currently
  6.                         // active connection, then buffer packets, else send them
  7.                         if (pVElan->NetworkConnection == pAdapt->CurrentActiveConnection &&
  8.                                 pAdapt->isSSIDActive[pAdapt->CurrentActiveConnection])
  9.                         {
  10.                                 DBGPRINT(MUX_LOUD, ("Sending Packet since SSID is active\n"));
  11.                                 //
  12.                                 // Make note of the upcoming send.
  13.                                 //
  14.                                 MUX_INCR_PENDING_SENDS(pVElan);

  15.                                 //
  16.                                 // Send it to the lower binding.
  17.                                 //
  18.                                 NdisSend(&Status,
  19.                                                 pAdapt->BindingHandle,
  20.                                                 MyPacket);

  21.                                 if (Status != NDIS_STATUS_PENDING)
  22.                                 {
  23.                                         PtSendComplete((NDIS_HANDLE)pAdapt,
  24.                                                                 MyPacket,
  25.                                                                 Status);
  26.                                 }
  27.                         }
  28.                         else
  29.                         {
  30.                
  31.                                 if(pAdapt->isSSIDToBeRemoved[pVElan->NetworkConnection] == SET_SSID_TO_BE_REMOVED){
  32.                                         DBGPRINT(MUX_LOUD,("@@ Throw the packets since isToBeRemoved values is %s @@\n", pAdapt->isSSIDToBeRemoved[pVElan->NetworkConnection]));
  33.                                 }else{
  34.                                 // Buffer the packet since adapter is in a different network
  35.                                 DBGPRINT(MUX_LOUD, ("@@Queueing Packet since SSID is NOT active\n"));

  36.                                 InsertTailQueue(&pAdapt->SendWaitQueue[pVElan->NetworkConnection], MP_GET_PACKET_MR(MyPacket));
  37.                                 pAdapt->nWaitSend[pVElan->NetworkConnection]++;
  38.                                 }
  39.                         }
  40. ........}
复制代码

这里nTotalPacketsSeen统计了要发送数据包的个数。
上面的程序就是判断当前连接是否激活的,如果是发送数据包,不是的话,缓存数据包。
NdisSend一次只能一个数据包,对吧?
现在我想统计从本机器发送数据包到另外一台机器来测试程序运行是否正确。
可是我发现即使你还没有开始发送真正的数据包,程序还是会调用这些代码做一些比如ICMP的信息的交换(我猜的),这也要调用MPSendPackets()来发送数据。
所以这样就很难统计到底发送了多少个真正要发送的数据包了....程序就很难测试了。郁闷当中。求救!
还有什么软件可以测试当前网卡接收或者发送了多少个数据包呢?谢谢!!

最新回复

do me a favor! please  详情 回复 发表于 2008-4-15 21:08
点赞 关注

回复
举报

84

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
sniffer pro.软件去研究一下
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
哦,我在用microsoft monitor?
有人帮忙?
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
do me a favor! please
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表