0

ネットワーク クレードルを介して 1 日の終わりのダウンロード ジョブを実行する 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

私の推測では、デバイスは一度に1つのポート(GPRSまたはLAN)にしか接続できません。

LANに接続する前に、他のソケットが開いているかどうかを検索できますか?

もしそうなら、あなたはそれを閉じることができますか?

クローズが成功した場合、LAN接続を確立できますか?

于 2012-05-25T13:45:19.887 に答える