2012-03-06 2 views
3

Я работаю над проектом, который должен подключаться к серверам через Wi-Fi/gprs. Project - это приложение для Windows CE 6.0, которое я пишу в Visual Studio 2008 на C#.WinCE 6.0, работа с GPRS/WiFi

У меня есть два ключа для работы. Сначала я должен подключиться через Wi-Fi, второй - через gprs. Поэтому мне нужно знать, как я могу изменить метод соединения между Wi-Fi и gprs?

Я нашел и попробовал так: я включаю WiFi и gprs на своем устройстве. Поэтому я работаю через Wi-Fi, потому что он имеет более высокий приоритет. Когда мне нужно работать через gprs, я отключу Wi-Fi (SetDevicePower). Но когда я включаю Wi-Fi, он не подключается к моей Preferred Network.

Также я слышал о том, как программно изменить приоритет между 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 

Теперь вы можете преобразование приложений в командной строке

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 

Это должно направить всю Trafic к серверу 1 через Wi-Fi и сервер 2 вместо gprs, без изменения одной строки кода в вашем приложении.

Вы можете проверить, он работал с

tracert 123.123.123.1 
tracert 123.123.123.2 

Однако, вы можете использовать приложение, чтобы периодически выполнять эту задачу (я предполагаю, что GPRS IP может меняться время от времени) с Process.Start (...)

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

Вы даже можете указать интерфейс с 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'. И где я могу получить шлюз для Wi-Fi и gprs? –

Смежные вопросы