none
WinCE6: 如何为VS2005的Deploy设置TCP连接优先级 RRS feed

  • 问题

  • 我在使用VS2005的Deploy在线调试程序时,在PC和CE6设备间同时建立了USB ActiveSync连接和WiFi连接。
    PC端IP为192.168.3.17
    CE6设备端USB ActiveSync连接获得的IP是192.168.55.101
    CE6设备端WiFi连接获得的IP是192.168.3.61

    我设置的是USB ActiveSync调试程序,但是我发现程序调试时实际的数据通信是通过WiFi进行的。以下是Deploy工作时CE6设备端的TCP端口信息:
    TCP TABLE
      Loc Addr Loc Port Rem Addr Rem Port State
      0.0.0.0 21 0.0.0.0 4196 LISTEN
      0.0.0.0 990 0.0.0.0 4160 LISTEN
      0.0.0.0 5655 0.0.0.0 20549 LISTEN
      192.168.3.61 5655 192.168.3.17 3102 ESTAB
      192.168.3.61 5655 192.168.3.17 3103 ESTAB
      192.168.3.61 6510 192.168.3.17 3104 ESTAB
      192.168.3.61 6510 192.168.3.17 3105 ESTAB
      192.168.55.101 990 192.168.55.100 1164 ESTAB
      192.168.55.101 990 192.168.55.100 1165 ESTAB
      192.168.55.101 49152 192.168.55.100 5679 ESTAB
      192.168.55.101 49153 192.168.55.100 7438 ESTAB
      192.168.55.101 49154 192.168.55.100 5678 ESTAB
      192.168.55.101 49155 192.168.55.100 5678 ESTAB
    可以看出端口5655和6510被绑定到192.168.3.61,也就是WiFi设备地址上了。

    如果我断开WiFi连接,Deploy就会正常的通过USB ActiveSync进行。以下是Deploy工作时CE6设备端的TCP端口信息:
    TCP TABLE
      Loc Addr Loc Port Rem Addr Rem Port State
      0.0.0.0 21 0.0.0.0 4196 LISTEN
      0.0.0.0 990 0.0.0.0 4160 LISTEN
      0.0.0.0 5655 0.0.0.0 20549 LISTEN
      192.168.55.101 990 192.168.55.100 1164 ESTAB
      192.168.55.101 990 192.168.55.100 1165 ESTAB
      192.168.55.101 5655 192.168.55.100 1176 ESTAB
      192.168.55.101 5655 192.168.55.100 1177 ESTAB
      192.168.55.101 6510 192.168.55.100 1178 ESTAB
      192.168.55.101 6510 192.168.55.100 1179 ESTAB
      192.168.55.101 49152 192.168.55.100 5679 ESTAB
      192.168.55.101 49153 192.168.55.100 7438 ESTAB
      192.168.55.101 49154 192.168.55.100 5678 ESTAB
      192.168.55.101 49155 192.168.55.100 5678 ESTAB
    可以看出端口5655和6510被绑定到192.168.55.101,也就是USB设备地址上了。

    但是由于WiFi有特别应用,客户要求Deploy必须通过USB ActiveSync进行,不能通过WiFi。

    哪位高手可以指点一下,怎么才能在USB ActiveSync和WiFi都连接的情况下,让Deploy不要走WiFi,而是通过USB?
    还有,Deploy一定要通过端口5655和6510吗?可不可以像ActiveSync文件传输一样,只通过990端口?

    万分感谢!
    2011年1月7日 15:37

答案

  • 谢谢版主的帮助。


    常用的VS2005设置似乎是解决不了这个问题。

    前两天,我和另一个同事通过以下两方面临时解决了这个问题:

    一方面,在WinCE里锁定Deployment的配置文件,就是禁止ConManClient2.exe在配置文件中写入WiFi的IP地址。这样一来,Port5655就被绑定到USB ActiveSync的IP上了。

    另一方面,利用WinCE的防火墙编程,阻塞WiFi这个interface的Port6510。

    不过今天,在研究wince OpenNetCF例程时,偶尔发现了问题的根源。就是因为WiFi路由的Metric参数值小于USB ActiveSync的。所以,只要将USB ActiveSync路由的Metric参数改成小于WiFi的,就可以了。这是第二种解决方案,比较直接。

    结贴。。。

    2011年1月14日 15:09

全部回复

  • 您好,

    我想这个应该很难做到,因为IDeviceAgentTransport::AcceptConnectionEx 这里面没有提供更多可以设置的参数,所以通过一般编程的方式可能无法实现。

    致礼

     


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年1月10日 7:47
    版主
  • 谢谢你的回复。 我在使用VS2005的remote tools的时候,遇到了同样的问题。但是,这些tools的connection选项允许选择数据通信途径。只要在某个remote tool的“TCP/IP Transport Configuration”中,配置Host IP时选中“configure automatically over serial”, 就可以了。 但是Deploy的“TCP Connect Transport”中却没有这一选项。 所以,不知道能不能在PC端配置VS2005或注册表来实现像Remote Tools一样的配置。
    2011年1月10日 8:23
  • 如果是这样的话 您尝试按照这个blog中的步骤去做

    http://kavachai.com/2009/11/04/how-to-connect-windows-ce-5-0-emulator-to-visual-studio-2005/

    这里是设置某些指定的文件夹,您可以尝试一下。

    致礼


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年1月11日 9:04
    版主
  • 您好,

    您的问题解决了没有,如果没有的话,请及时更新帖子信息

    致礼


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年1月13日 7:01
    版主
  • 谢谢版主的帮助。


    常用的VS2005设置似乎是解决不了这个问题。

    前两天,我和另一个同事通过以下两方面临时解决了这个问题:

    一方面,在WinCE里锁定Deployment的配置文件,就是禁止ConManClient2.exe在配置文件中写入WiFi的IP地址。这样一来,Port5655就被绑定到USB ActiveSync的IP上了。

    另一方面,利用WinCE的防火墙编程,阻塞WiFi这个interface的Port6510。

    不过今天,在研究wince OpenNetCF例程时,偶尔发现了问题的根源。就是因为WiFi路由的Metric参数值小于USB ActiveSync的。所以,只要将USB ActiveSync路由的Metric参数改成小于WiFi的,就可以了。这是第二种解决方案,比较直接。

    结贴。。。

    2011年1月14日 15:09