2012-03-06 15 views
3

私はwifi/gprsを通じてサーバーに接続する必要があるプロジェクトに取り組んでいます。プロジェクトは、Windows CE 6.0デバイス用のアプリケーションです。私はVisual Studio 2008でC#を書いています。WinCE 6.0、GPRS/WiFiで動作します

私には2つのサーバーがあります。最初は私はwifi経由で接続する必要があります - 秒gprsを介して。だから私は知っておく必要があります、どのようにwifiとgprsの間の接続の方法を変更することができますか?

私はこの方法で見つけて試しました:自分のデバイス上でwifiとgprsの両方をオンにします。だから私はそれがより高い優先順位を持っているので、無線LAN経由で働いています。私はgpr​​s経由で作業する必要があるとき、私は無線LAN(SetDevicePower機能)をオフにします。しかし、Wi-Fiをオンにすると、優先ネットワークに接続しません。

また、OSプライオリティテーブルのgprs/wifi間の優先順位をプログラムによって変更する方法についても聞きましたが、これを行う方法に関する情報は見つかりませんでした。

私があなたを助けてくれることを願っています。

答えて

2

シェルからrouteコマンドを使用します。

は今

server1 ip: 123.123.123.1 
server2 ip: 123.123.123.2 

wifi ip : 192.168.1.101 
    gateway: 192.168.1.1 

gprs ip : 10.1.2.3 
    gateway: 10.1.1.1 

コマンドプロンプトでexcuteできると仮定することができます

route add 123.123.123.1 MASK 255.255.255.255 192.168.1.1 

と。これは、無線LAN経由してサーバ2へのルートサーバ1に、すべてのTRAFICをすべき

route add: 123.123.123.2 MASK 255.255.255.255 10.1.1.1 

あなたのアプリでコードの1行を変更することなく、gprs上で。

あなたは、それはしかし、あなたが定期的にProcess.Start(...)と(私はGPRSのIPは随時変更される可能性が想定する)このタスクを実行するためにアプリを使用することができ

tracert 123.123.123.1 
tracert 123.123.123.2 

と協力し確認することができます

- delete route 1 
- add route 1 
- delete route 2 
- add route 2 

あなたも(ルートリストは、ネットワークカードのインタフェースIDを出力します)IF 2スイッチとのインタフェースを指定することができます。読んで

もう一つの興味深い記事は、このいずれかになります。http://ce4all.blogspot.com/2007/05/routing-ip-traffic-via-specified.html

著者はGetAdapterAddressesを使用しています()とCreateIpForwardEntry()P /呼び出します:

http://msdn.microsoft.com/en-us/library/ms927384.aspx

http://msdn.microsoft.com/en-us/library/ee495149%28v=winembedded.60%29.aspx

+0

私はこの方法を試してみました。 'GetAdapterAddresses()'が正常に動作するので、私はWiFiとGPRSのIPを持っています。しかし、私はCreateIpForwardEntry() 'の使い方を理解していません。 'dwForwardNextHop'と' dwForwardIfIndex'のデータはどこで取得できますか?また、どこでwifiとgprsのゲートウェイを取得できますか? –

関連する問題