Can I share the Internet connection on my Pocket PC through Bluetooth/Wi-Fi? That is, can I make my Internet-connected Pocket PC

http://pocketpcmag.com/forum/topic.asp?TOPIC_ID=20351

Q: Can I share the Internet connection on my Pocket PC through Bluetooth/peer-to-peer (P2P) Wi-Fi? That is, can I make my Internet-connected Pocket PC into some kind of a Wi-Fi/Bluetooth Access Point? A: This is a very common question (see for example this, this, this and this threads) and, therefore, worth dedicating a blog entry to it - particularly because, as to now, noone has ever presented a really working proxy solution for sharing the network connection on a Pocket PC (before this tutorial, that is). What's the point in all this, you may ask. Well, it's pretty simple. Let's assume you have two Pocket PC's. One of them is connected to the Internet via, say, Wi-Fi, the ActiveSync Internet pass-through or Bluetooth (say, via GPRS) and, say, your wife/husband/kids/friend is chatting via MSN Messenger or some IRC application on it. You would, however, like to connect to the Internet via the other Pocket PC('s) to browse the Web, using the same Internet connection. You can certainly do this! (Incidentally, this is a very common case in my family. My wife likes chatting via MSN Messenger and, at home, we only have Pocket PC's and GPRS connection (no external Wi-Fi access points, no cable/ADSL connections, nothing) via my mobile phone. The Pocket PC, an iPAQ 2210, she uses for MSN Messenger chat, connects directly to the Net (via BT GPRS) and also shares its HTTP Internet connection by running a HTTP proxy server. This is the HTTP proxy server that I connect to from the other Pocket PC, a VGA Pocket Loox 720, via a Bluetooth Personal Area Network built up between the two Pocket PC's. This way, we can access the Internet using the same GPRS connection at the same time, from the two Pocket PC's, without using any kind of external PC's or other tricks. That is, this solution works beatifully for Internet sharing in my practice.) To share an Internet connection, you'd need operating system-level support for connection sharing as is present in, say, the desktop Windows. It's what is really missing from the Windows Mobile operating system. Fortunately, there're some tricks you can do to be able to access at least the Web from the client machines if you use a HTTP proxy run on the Pocket PC that shares its Internet connection. Note that you won't be able to access anything else: no MSN Messenger, no POP3/SMTP/IMAP e-mail, no multiplayer, TCP/IP and GPRS-friendly games etc. on the "client" Pocket PC's (on the "server" Pocket PC, of course, you can run any Internet client application.). Still, being able to access the Web on the "clients" is a great thing. Your choices are as follows:
  1. use PocketPCProxy as described here. I really don't recommend this proxy server because it doesn't even support POST requests – therefore, you won't be able to fill in (send) HTML forms to, for example, send posts/log in to anywhere (unless you have previously logged in on the same Pocket PC and the login cookie is still valid.)
  2. wait until the Toonel folks allow for non-local incoming connections in their great tool. Unfortunately, due to (for security reasons, understandable) access restrictions, it's not feasible now.
  3. use my HTTP proxy server (more about this later)
As long as Toonel has no support to be used as a proxy server run on an access point, I recommend my free, open-source, POST-capable and, compared to the above-mentioned PocketPCProxy, much more advanced HTTP proxy server available for download here (its sources are also available here if interested) instead. Just get the HTTPSnoopProxy.class file, copy it to, say, the root of your "access point" Pocket PC and get a decent Java Virtual Machine (I recommend CrEme 4.00 because of its superior speed, reliability and moderate memory consumption). Install CrEme on the device that you would like to act as the Bluetooth Access Point. Then, on the same PDA, write a link file that invokes CrEme on HTTPSnoopProxy.class. The link file will be, assuming you install CrEme in the main memory, as follows: 255#"\Windows\creme\bin\CrEme.exe" -Ob -classpath \ HTTPSnoopProxy 8080 To make your life easier, I've uploaded an example file here – you only need to put it in, say, \Windows\Start Menu\Programs so that it's easily accessible. It, again, assumes that CrEme 4.00 is installed into main memory and HTTPSnoopProxy.class is copied to the root directory of your PDA. If not, you must modify either the path to CrEme.exe or the parameter of -classpath. Then, just set up a Bluetooth PAN network and find out the IP address of the "server" (the "Access point") PDA as described in my BT PAN tutorial. You will need to feed this IP address as the proxy address to either your Web browser (if it's proxy-capable; that is, it's either Minimo or NetFront) or to the Connectivity framework (if you plan to use Pocket Internet Explorer) on all the Pocket PC clients that you would like to connect to your BT "access point". Please consult the tutorial here (the "Configure Your Web Browser to Use The Toonel HTTP Proxy" section in my Toonel tutorial) on how this must be done. Please note that, instead of the localhost IP 127.0.0.1, you will need to enter the address of your actual BT access point here – that's what you've already found based on the above-linked BT PAN tutorial. The port number of the proxy is 8080; you can easily change it by changing the '8080' parameter passed to HTTPSnoopProxy in the link file. That's all – you can start browing the Web right away from the clients; and, you will also have POST support! Please let me know if you, for example, need compatibility info / example link files for other JVM's too. Also, make sure you ask your questions if you run into problems. EDIT (Feb-2-2006): I've been told by the Toonel staff that the localhost restriction of Toonel is only left out in the commercial (the license fee is about $60/year) clients. That is, there won't be a working, Toonel-based, free solution. This means you will need to stick to my proxy server. ADDITION (Feb-26-2006): Here, I've elaborated on the new networking model of Windows Mobile 5 devices. It's completely different from that of previous Windows Mobile versions and makes it possible to use an USB/ActiveSync-based PDA to share its Internet connection to the desktop computer it's connected to.

can your proxy (HTTPSnoopProxy) be used in anyway to setup a local proxy server on a pocket pc and tunnel msn through por 80?

Werner Ruotsalainen's picture

Nope, it's HTTP only and MSN Messenger uses an entirely different, native protocol.

How do you configure this to work with 802.11b instead of bluetooth? Also, does this work with Windows Mobile 5.0?

I have a Verizon XV6700 with WM5 and I get the following result from creme.exe

Application: creme.exe -Ob \ HTTPSnoopProxy 8080
Finished!
Exit Code:-1073741571

I installed the latest CrEme 4.0 in to the main memory and copied the HTTPSnoopProxy.class to the root directory just as you described above.

Any thoughts on what's wrong?

Thanks
Todd

Hello,
I have a new x1 latitude notebook so small it does not have a pcmcia slot. I used to connect happly with my Verizon broadband card. Now I cannot use it with this laptop. And Verizon does not FEEL the need to allow internet access to there broadband EVDO through many of there EVDO Bluetooth or Wifi enabled phones. Very frustrating to say the least, I used a motorola V551 from Cingular on edge for several months now and it connects great via blutooth but is to slow to continue to bear..
When might someone find a solution to share the internet via bluetooth or preferably via wifi for more range from one of there pocket pc EVDO capable phones? There new Treo 700w is a good example with wifi and EVDO, I am interested in getting it but not just to enjoy the internet on this small device.. It seems to me if they want to remove or not support this type of connection method that someone should make a add on software to manage and share the phones internet connection.
Thanks, Gregory

Werner Ruotsalainen's picture

Gregory, you can use Wi-Fi to share your internet connection. Please read this article.

total noob here

using this method would I be able to share internet from my wm5 phone (sprint 6700) to a handheld like a nintendo ds?

Werner Ruotsalainen's picture

Yes, you will be able - at least to access the Web. Make sure you run CrEme on your 6700 though - it's the only 100% WM5-compliant JVM right now.

So when you say access the web then I sould be able to play it's games online?

That's all I really care about since the 6700 already has ie

Werner Ruotsalainen's picture

Nope, you won't play games.

I can't seem to get this to work.

I have a Sprint PPC-6700 Rom 2.06.00 WME. I have established an ad-hoc between my laptop and the 6700. I installed cream 4.10, copied HTTPSnoopProxy to /. Copied the ProxyRun shortcut to /windows/start menu/. I connect to EV-DO; I can browse the web from 6700 at this time.
I connect the ad-hoc wifi between 6700 and laptop. I can ping back and forth from 6700 and laptop. I set firefox to use socks proxy with the ip address of the 6700 on port 8080 but it times out.

"Here is the content of the jscpout.txt file I found at the /"

++COJscp::(CreateVm) hr=0x80004005

NSIcom Ltd., CrEme(tm) Evaluation VersionEBCI(TM) Interpreter V1.00,
Copyright 1998-2002 by Bytecodes, Inc.
g_pServer->memLimit 0, jsVconfMem.memLimit=47363072
OnDestroy : can't find method: m_AppletPlugin = 0
OnDestroy : Closed Applet window: 0
Closed Applet

"This is part of the output from the java console"

java.net.connectexception: timeout!!: unable to connect

Do you know what may be the problem?

Thanks in advance.

Chris

I downloaded creme, got it to run, but I still don't know how to connect my psp to my pocket pc's internet connection. I confused with all this proxy stuff. Can somebody e-mail step by step directions to connect a psp to my pocket pc. ch12o177e@yahoo.com

Good job!

I noticed that the code provided compiles and runs under J#.NET 2.0. I’m going to try to run this using the .NET runtime on Windows Mobile 5.0. I’ll let you know how it goes.

Can you please elaborate on something for me?

I have a WM5 device with GPRS, Bluetooth, IR, and USB (T-Mobile MDA).

My goal is to use the Internet connection on my device to allow my laptop to access the Internet.

After installing the Proxy server on the WM5 device I connect to the computer via USB and ActiveSync. I receive a real IP address (169.254.2.1) which I can ping. I start the proxy server on my device and then change the settings for my web browser to point to the proxy server. Everything works fine. However, even though everything is working it is working because the phone is routing Internet traffic back through by laptop. When I disable the LAN network connection and attempt to browse the web I can no longer access the Internet.

I have found out that Microsoft intentionally does not allow ActiveSync and GPRS to be connected simultaneously. If this were allowed, then I think I would be up and running right now.

Next I tried connecting to the device via Bluetooth and ActiveSync. Now I can be connected to ActiveSync and Bluetooth at the same time. So far, so good but now I get the fake IP address (192.168.55.101) which I don’t believe can be used to reach my Proxy server.

Please help, it seems as though I can’t get there from here. Am I missing something?

Thank you,

-David J. McKee

Alright, thanks to another outstanding article of yours I’m now up and running with an Ad-hoc P2P network.

However I still have a similar problem. All of the Internet traffic tries to go over the Wi-Fi connection and won’t use the GPRS (cell) connection. Any idea how to use Wi-Fi and cell (data) at the same time and force Internet traffic over cell?

Ditto, Ditto. I have a verizon xv6700, and when connected via USB ActiveSync the Cell-data connection is "greyed out" (using the new AKU 2.2 connection Manager).

I'm currently using wmodem.exe to connect my laptop to the internet using my phone as a modem, but I'd like to get this going. As it is, while my phone is being used as a modem, I cannot use any of the PIM functions (and I need them to jot down notes, etc. as ideas come to me at home). It appears the HTTPSnoopProxy can function in the background, which would be just what I need. I come in, plug in the phone, and boom, the laptop is online for my wife (we have no DSL/no cable). Meanwhile I can grab the 6700 & record a voice-memo or jot down a note if I need to without disturbing her.

BUT I'm stumped: ActiveSync assumes the internet connection is available on the PC and disables the phone's data connection. Anyone know a way around this?

(PS: I'm using a free JVM called Mysaifu. I had to remove the -Ob and -classpath \ flags from his shortcut)

I have the same issue as CHri with a 6700. I can ping back and foth between the devices, but once the wifi connection is established I can no get to the internet with evdo via either the 6700 or the laptop. It is as if the wifi connection shuts off Evdo. Any ideas?

Werner Ruotsalainen's picture

Do you run my HTTP proxy server on the EVDO-connected PDA? If yes, can you connect to the Web through it from the LOCAL PPC?

It's only by using my HTTP proxy server that you can share an Internet connection on a Pocket PC - the operting system itself doesn't do the same, as opposed to desktop Windows operating systems.

I would like to run your proxy server on my T-Mobile Dash but I'm having trouble getting it to work. I tried to wrap the class file in a Jar so it would run with the Esmertec JVM, and it does install but I get a "null pointer exception" error. Any ideas how to get this to work? Thanks very much ...

I have two PCs. One has a Verizon dial up card. We have a linksys router and am hoping to connect the second PC to the internet through the router and PC that has the Verizon card.

A friend said a proxy setup may get this to work. Do you have some help in getting this to work?

I am looking into doing this for when my wife and I travel.

If we can do it with Bluetooth that will be best.

Werner,

Does your proxy specifically look for HTTP traffic, or does it just look at port 80/8080, and if it is the latter, does it have to be TCP? I have an app that runs on another device (an in-vehicle monitoring box) that sends out Wi-Fi "announcements" via UDP on port 80. Would this traffic be routable via your proxy?

Thanks,
John

Werner Ruotsalainen's picture

John, nope, unfortunately. It's HTTP-only, looks for well-formed HTTP requests and responses on TCP ports. That is, it can't work with any other protocol.

Thanks for the quick response, Werner. That's too bad. So I guess what I really need is a true "Wireless Modem" (or whatever it might be called in a specific AKU) that supports the Wi-Fi adapter as well as USB, BT, serial, etc. Functionality that will truly bridge Wi-Fi to GPRS, all ports and all protocols. Maybe this is asking too much of Windows Mobile, but you haven't come across such a thing in your travels, have you? I am willing to buy a commercial product to do this, if one exists.

Thanks,
John

Werner Ruotsalainen's picture

Unfortunately, it's highly unlikely Windows Mobile will ever support this functionality out-of-the-box, however much I try to push this issue inside Microsoft.

There are no third-party products for this either, unfortunately.

I am so glad to find these article. I have been experimenting with this also and I hve found that instead of turnng on wifi and blue tooth and all this other stuff, it is not only possible but soooo much easier to just let my laptop pick up my gprs connection on its own and use this (at pretty good speed also!) I have read some of these posts but didn't get to read them all. If someone has any tips on this subject, they would be greatly appreciated.

Werner Ruotsalainen's picture

That is, you want to use your PDA as a GPRS modem for your laptop?

Hi ,

I have an I-mate JAM (OS: WM 5.0 ) which supports Wi-fi , it's possible to share the WAP connection on my laptop through Wifi or USB ?

I tried to recompile HTTPSnoopProxy in order to fake my user agent, but it won't compile (I used JDK 1.1.8). What java version did use to compile it?

Thanks
Ralf

Werner Ruotsalainen's picture

Just change the

requestHeaders.add(line);

line to

requestHeaders.addElement(line);

Then, it'll compile just fine.

Has the this method changed at all with WM6? The ICS tool on WM6 doesn't allow wifi either, but it seems we're closer maybe?

Werner

I am getting the following:

java.net.UnknownHostException: www.google.com
at java.net.InetAddress.getAllByName0()
at java.net.InetAddress.getAllByNameo()
at java.netInetAddress.getByName()
at java.net.socket.()
at HTTPSoopyProxy.run()

Running on a Treo 700wx
under WM5 OS5.1.195(Build 14929.2.1)

Any ideas of the problem?

Thanks

My provider blocks the msn, i conect trough a proxy server, but using a local socks proxy the msn works, i want to find a local socks proxy with parent proxy support for my mpx220. if i use my cell phone like a modem conected to the pc i use ccproxy and works fine, but i cant find a proxy server for wm2003 with ccproxy similar features.
I tried toonel but doesent work for me,my provider gprs gateway only give me accces to my the provider proxy and dns ips.

Hi Werner, First, thanks for

Hi Werner,

First, thanks for all the great info - it's most appreciated.

I have an HTC TYTNII and an HTC Advantager X7500.  Both are great devices, but the screen on the TYTNII is too small for my old eyes and the X7500 isn't a viable phone.  Rather than sitching SIM cards, I would like to access the internet and email on the 7500 usine the TYTNII as a "host".  I read your article on setting up a WIFI conenection between two PDA's, got them to connect to each other but I can't make the internet connection from the 7500.  I get the message "answering modem has disconnected".  Did I miss something, do I need to set up a special connection in "connection settings"?  I'll appreciate any additional help.

Can this be done with a bluetooth or cable connection?

Thanks again.

 

Question: How can I share my

Question: How can I share my internet connection from my windows vista laptop to my pocket Pc windows mobile 6?

Looking forward to the anwer! Thanks 

 

Syndicate content
 

Flash®