wince网络通讯的问题

=============================================================

标题:wince网络通讯的问题

摘要:

备注:Windows CE 5.0 + udp

日期:2010.5.25

姓名:朱铭雷

=============================================================

       两台wince设备进行基于udp协议的网络通讯,发现只能单向收发。AB收可以的话,则AB发就不通。试着将网线调了个头,就发现可能变为了BA收可以,但是BA发却不行。为此请教了一些人,在csdn上还开了一个帖子。最后确定是mac地址的问题。将其中一台wince设备与另一个ARM开发板进行通讯,发现收发都正常。后来用程序获取这几台设备的mac地址,发现正常通讯的两台设备,它们的mac地址是不相同的,而收发不正常的两台设备,他们的mac地址是相同的。比如,我先前不能够正常进行通讯的两台wince设备,他们的mac地址都为00:0A:EB:FD:7A:00

       获取mac地址的程序如下,这个在MSDN里和网络上都可以找得到。

       HRESULT hr;  

    IPAddr  ipAddr;  

    ULONG   pulMac[2];  

    ULONG   ulLen;  

    ipAddr = inet_addr ("192.168.0.17"); 

    memset (pulMac, 0xff, sizeof (pulMac));  

    ulLen = 6;  

      

    hr = SendARP (ipAddr, 0, pulMac, &ulLen);  

    printf ("Return %08x, length %8d/n", hr, ulLen);  

      

    size_t i, j;  

    char * szMac = new char[ulLen*3];  

    PBYTE pbHexMac = (PBYTE) pulMac;  

    //  

    // Convert the binary MAC address into human-readable  

    //  

    for (i = 0, j = 0; i < ulLen - 1; ++i) {  

        j += sprintf (szMac + j, "%02X:", pbHexMac[i]);  

    }  

      

    sprintf (szMac + j, "%02X", pbHexMac[i]);  

    printf ("MAC address %s/n", szMac);  

delete [] szMac;   

然后试着修改mac地址,看了一下设备,目前这台设备在注册表中可以设置mac地址,猜测开机启动的时候,驱动应该会去读取注册表中的mac地址。将其中一台wince设备的mac地址修改为00:0A:EB:FD:7A:11。重新启动了系统,再次测试,先前udp通讯不正常的两台设备已经能够正常通讯了,收发都没有问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值