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. }

 

你可能感兴趣的:(错误集)