Windows mobile 如何诊断Windows CE上的WSAECONNREFUSED错误?

Windows mobile 如何诊断Windows CE上的WSAECONNREFUSED错误?,windows-mobile,tcp,windows-ce,Windows Mobile,Tcp,Windows Ce,我已将Dell Axim Windows CE设备(Windows Mobile 5.0 OS 5.1.1702 Build 14366.1.0.1)连接到Dell Latitude E6500笔记本电脑。我的C++应用程序正在CE设备上运行,并在端口80上监听TCP连接。该程序尝试使用地址169.254.2.1:80连接到自身,并获取错误代码WSAECONNREFUSED(10061)。这通常表示没有人在该端口上侦听。如果我将地址更改为127.0.0.1:80,则连接成功 这是奇怪的部分。如果

我已将Dell Axim Windows CE设备(Windows Mobile 5.0 OS 5.1.1702 Build 14366.1.0.1)连接到Dell Latitude E6500笔记本电脑。我的C++应用程序正在CE设备上运行,并在端口80上监听TCP连接。该程序尝试使用地址169.254.2.1:80连接到自身,并获取错误代码WSAECONNREFUSED(10061)。这通常表示没有人在该端口上侦听。如果我将地址更改为127.0.0.1:80,则连接成功

这是奇怪的部分。如果我断开该设备与笔记本电脑的连接,并将其连接到Dell Latitude D830,则一切正常。169.254.2.1地址相同,但连接成功。请注意,这是运行在CE设备上的应用程序连接到自身,而不是连接到笔记本电脑,也不是笔记本电脑连接到设备上的应用程序。我们已经用一些不同的机器证实了这一点——所有E6500都显示了问题,其他的都没有


我不明白设备连接到哪台机器会影响内部TCP连接。有什么想法吗?

首先我要问你为什么要用169.254.2.1来连接你自己。该IP地址是ActiveSync分配的地址,并且不能保证是静态的(在过去,当驱动程序从USB串行传输到RNDIS时,它确实发生过一次更改),因此使用它是有风险的

如果您想自己寻址,请使用标准环回地址,如127.0.0.1。如果您想为activesync合作伙伴寻址,请解析主机名
ppp\u peer
,并让它为您提供实际地址

我猜测,当你连接到电脑时,一个本地“局域网”是由两个节点(设备和电脑)组成的。LAN往往不是一个“完整”的网络(例如ICMP数据包不会被传输),它可能依赖于主机PC加载的驱动程序。当然,这纯粹是猜测


正如我所说的,我想了解更多关于您为什么使用您要使用的地址的信息,看看我们是否可以通过做一些更安全的事情来“修复”问题。

首先,我必须问您为什么要使用169.254.2.1连接到您自己。该IP地址是ActiveSync分配的地址,并且不能保证是静态的(在过去,当驱动程序从USB串行传输到RNDIS时,它确实发生过一次更改),因此使用它是有风险的

如果您想自己寻址,请使用标准环回地址,如127.0.0.1。如果您想为activesync合作伙伴寻址,请解析主机名
ppp\u peer
,并让它为您提供实际地址

我猜测,当你连接到电脑时,一个本地“局域网”是由两个节点(设备和电脑)组成的。LAN往往不是一个“完整”的网络(例如ICMP数据包不会被传输),它可能依赖于主机PC加载的驱动程序。当然,这纯粹是猜测


正如我所说,我想知道更多关于你为什么要使用你要使用的地址,看看我们是否可以通过做一些更安全的事情来“修复”这个问题。

我实际上不是CE的人,我是网络的人,但我对CE网络知之甚少。我将研究为什么不使用127.0.0.1。很明显,我们在不久前使用127.0.0.1时遇到了问题,但169地址始终有效,因此我们使用了它。在我们改用127.0.0.1之前,他们想知道为什么169是错误的。同样,169.x地址是由ActiveSync/WMDC虚拟网络分配的。它只在你连接到电脑时存在,不能保证它不会改变。仅仅出于这个原因,硬编码地址不是一个好主意。我个人倾向于使用
localhost
或类似
gethostname
gethostbyname
来解析我的实际本地地址。我实际上不是CE,我是网络人,但我对CE网络知之甚少。我将研究为什么不使用127.0.0.1。很明显,我们在不久前使用127.0.0.1时遇到了问题,但169地址始终有效,因此我们使用了它。在我们改用127.0.0.1之前,他们想知道为什么169是错误的。同样,169.x地址是由ActiveSync/WMDC虚拟网络分配的。它只在你连接到电脑时存在,不能保证它不会改变。仅仅出于这个原因,硬编码地址不是一个好主意。我个人倾向于使用
localhost
或类似
gethostname
gethostbyname
的东西来解析我的实际本地地址。