SendARP 相关错误

SendARP 31错误(连到系统上的设备没有发挥作用。 )

 

SendARP 1784错误(提供给请求操作的用户缓冲区无效。 )

  1. unsigned char macAddress[6];
  2. ULONG macAddLen = 6; 
  3. for( ; it != ControlDevices.end(); it++)
  4. {
  5.    iRet=SendARP(it->DeviceAddr.GetIPAddr(), (unsigned long)NULL,(PULONG)&macAddress, &macAddLen);
  6. }
  7. 改成
  8. for( ; it != ControlDevices.end(); it++)
  9. {
  10.    unsigned char macAddress[6];
  11.    ULONG macAddLen = 6;
  12.    iRet=SendARP(it->DeviceAddr.GetIPAddr(), (unsigned long)NULL,(PULONG)&macAddress, &macAddLen);
  13. }
  14. 发送成功
  15. 应该是macAddress这个地方有错误,才会出现的

2008-11-23

SendARP 返回时间,测试代码时遇到SendARP 大约每隔1秒才会返回

具体代码,"......"里的代码不是很长,现在只能改用另外一种办法了,把SendARP换成消息,这样可以做到每隔一定的时间发送设备查询的消息

  1. for( ; it != list.end(); it++)
  2. {   
  3.         if(it->m_device.DeviceState==0)
  4.     {
  5.         unsigned char macAddress[6];
  6.         ULONG macAddLen = 6;
  7.         memset( macAddress,0xff,sizeof( macAddress ) );
  8.     
  9.         int iRet=SendARP(it->m_device.DeviceAddr.GetIPAddr(), (unsigned long)NULL,(PULONG)&macAddress, &macAddLen);
  10.         if( iRet == NO_ERROR )
  11.         {
  12.                        .......
  13.         }
  14.     }
  15. }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值