0

我们有一个 Compact Framework 3.5 应用程序,它通过网络底座执行一天结束的下载工作。

该设备是带有 Windows Mobile 6.1 Professional 的 Motorola MC9500。

为了做到这一点,我们创建一个Socket类并调用Connect()

但它只有在没有连接 GPRS 的情况下才有效。

如果 GPRS 已连接,则该方法超时。

我们的解决方案是在将设备放入底座时以编程方式关闭手机,并在移除时再次开启。

但这是非常暴力的,我们不明白为什么它不起作用,什么时候应该!

这是连接(sServerIPAddress == "192.168.27.107")的代码:

oEndPoint = new IPEndPoint(IPAddress.Parse(sServerIPAddress), i);
oSock = new Socket(oEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
oSock.Connect(oEndPoint);

这是两个接口连接时的路由表:

Destination     Netmask         Gateway         Metric
0.0.0.0         0.0.0.0         192.168.27.1    20
0.0.0.0         0.0.0.0         10.212.14.71    50
10.0.0.0        255.0.0.0       10.212.14.71    50
10.212.14.71    255.255.255.255 127.0.0.1       50
10.255.255.255  255.255.255.255 10.212.14.71    50
127.0.0.0       255.0.0.0       127.0.0.1       1
* 192.168.27.0  255.255.255.0   192.168.27.52   20 *
192.168.27.52   255.255.255.255 127.0.0.1       20
192.168.27.255  255.255.255.255 192.168.27.52   20
224.0.0.0       240.0.0.0       192.168.27.52   20
224.0.0.0       240.0.0.0       10.212.14.71    50
255.255.255.255 255.255.255.255 10.212.14.71    1
255.255.255.255 255.255.255.255 192.168.27.52   1

据我所知,应该选择 LAN 作为目标地址

我看不出 WinMo 连接管理器应该与此有什么关系,当然在 IP 级别只有路由表对连接很重要?

谁能告诉我为什么它只在 GPRS 关闭时才有效以及如何正确操作?

谢谢,

詹姆士。

4

1 回答 1

0

我最好的猜测是您的设备一次只能连接到一个端口 - GPRS 或 LAN。

在您尝试连接到您的 LAN 之前,您可以搜索一下是否有任何其他 Socket 是打开的吗?

如果是这样,你能关闭它吗?

如果关闭成功,您现在可以建立局域网连接了吗?

于 2012-05-25T13:45:19.887 回答