[Windows Mobile Apps and Games] bomin:
I've created my first Windows Mobile application mainly as a learning experience. I thought might as well share it.

I have to use Motorola MC5574 and a laptop without wifi card for work and got tied of sharing slow gprs connection to laptop while in the field.

Internet Sharing on MC55 won't allow me to share wifi over bluetooth or usb. Tried ICS Control but did not work for me.

So this application is created and finished after days of research on internet instead of adding on a wifi card to the laptop.

This program requires Microsoft .Net Compact 3.5.

I do not know if it will work on any other device.

I am not responsible if you use this application and crash your device or whatever else happens.

Main proxy function is based on open source C# proxy server code. Basic DNS proxy and ping functions are added and compiled with SharpDevelop. I could not add soft input panel in SharpDevelop so there is no keyboard icon available.

To use:

Press IP button to list ip addresses.

Select server ip address by using < or > buttons.

Uncheck DNS proxy if used together with built-in Internet Sharing.

Leave it checked if used together with WM6BTPAN.exe and manually put in DNS and Gateway address (server ip address) on laptop bluetooth lan driver.

Press Start.

Don't forget to change socks proxy option in the browser on laptop.

To use with usb connection: On mobile, under ActiveSync>Connections, uncheck "Synchronize all PCs..." and reboot before the usb cable is connected to laptop. If ActiveSync on laptop connects proxy does not work.

In my experience Firefox works better with this app then Internet Explorer for some reason.

Connection limit (on the right of port number) is to prevent process overload by client connections especially on web pages with a lot of elements. It may be better to set the limit higher on the program and change network.http.max-connections value on Firefox.

01/24/2011

New Version: 1.1.

Added KB button for keyboard.

Added DHCP service to make connections easier.

Added DNS resolve function for sharing ActiveSync connection.

Example: if the Internet connection through ActiveSync is shared as [Internet > Router > LAN > PC > ActiveSync > USB > WM phone > Proxy > Wifi Ad-Hoc > another WM phone]:

On PC, in ActiveSync connection settings, check “allow wireless connection” before connecting USB cable.

On the device running proxy: check browser to make sure it is connected to Internet. Create an Ad-Hoc connection with static address (example 192.168.15.1, subnet 255.255.255.0, no gateway address). Wait until connected with client device (which should be set to dynamic IP address). They should connect even though the client will have wrong IP. If they do not connect at this stage don’t bother with next steps.

Once connected start proxy or click on IP button if already started. The Wifi IP address 192.168.15.1 should show up. Set that as proxy server address, check DHCP, and check DNS with 127.0.0.1 as DNS server address. Click Start.

If the Wifi Ad-hoc connection still works the DHCP client count should change in a couple of minutes. If not make sure to keep the devices a few feet apart and also try turning Wifi off and on from the client phone to force DHCP discover again.

On the client phone: Settings > Wifi > configure network adaptors to “connect to work”. In Settings > Connections > Work Network > setup proxy server > enter proxy server as “socks=192.168.15.1” (example proxy server address) > advanced > HTTP > change port to proxy port (default 9876) so that the screen shows HTTP as “socks=192.168.15.1:9876. Socks port setting does not matter, as Mobile IE seems to connect using HTTP setting.

Note:

Tested between Motorola MC5574 and a Samsung Omnia i910. Wifi Ad-hoc connection on Omnia side is unstable and cannot be used as host.

Therefore Internet>MC55>Wifi>Omnia works but Internet>Omnia>Wifi>MC55 does not work reliably.