ネットワーク クレードルを介して 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 がオフのときにのみ機能する理由と、適切に行う方法を誰か教えてもらえますか?
ありがとう、
ジェームズ。