gpt4 book ai didi

c# - WinCE 6.0,支持GPRS/WiFi

转载 作者:行者123 更新时间:2023-11-30 17:13:38 28 4
gpt4 key购买 nike

我正在做一个项目,它应该通过 wifi/gprs 连接到服务器。项目是Windows CE 6.0 设备的应用程序,我在C# 上用Visual Studio 2008 编写。

我有两台服务器要使用。第一个我必须通过 wifi 连接,第二个 - 通过 gprs。所以我需要知道,如何更改 wifi 和 gprs 之间的连接方法?

我发现并尝试过这种方式:我在我的设备上同时打开 wifi 和 gprs。所以我通过 wifi 工作,因为它有更高的优先级。当我需要通过 gprs 工作时,我会关闭 wifi(SetDevicePower 函数)。但是当我打开 wifi 时,它不会连接回我的首选网络。

我还听说过以编程方式更改操作系统优先级表中 gprs/wifi 之间优先级的方法,但我没有找到有关如何执行此操作的任何信息。

我希望你能帮助我。

最佳答案

我会在 shell 中使用路由命令。

假设

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

现在您可以在命令提示符下执行

route add 123.123.123.1 MASK 255.255.255.255 192.168.1.1

route add: 123.123.123.2 MASK 255.255.255.255 10.1.1.1

这应该将所有流量通过 wifi 路由到服务器 1,通过 gprs 路由到服务器 2,而无需更改应用中的一行代码。

您可以验证它是否适用于

tracert 123.123.123.1
tracert 123.123.123.2

但是,您可以使用您的应用通过 Process.Start(...) 定期执行此任务(我假设 gprs ip 可能会不时更改)

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

您甚至可以使用 IF 2 开关指定接口(interface)(路由列表打印您的网卡的接口(interface) ID)。

另一篇值得阅读的有趣帖子是:http://ce4all.blogspot.com/2007/05/routing-ip-traffic-via-specified.html

作者使用 GetAdapterAddresses() 和 CreateIpForwardEntry() P/Invokes:

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

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

关于c# - WinCE 6.0,支持GPRS/WiFi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9584108/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com