This is a long shot but I hope that there's someone with experience on this topic.

I've created a smart device application which runs on a WinCE device. The application I made is able to receive messages send from a backoffice system. Therefore, I've created a listener in the smart device application.

Everything works like a charm, but after a random time (almost always under two minutes) the smart device application fails to accept incomming messages. Also a ping to the smart device fails. I can however send from the smart device to the backoffice and at that point, the incoming connection is restored again for a random time. At that time, also a ping works fine. To solve this problem I keep sending some data every minute to a dummy IP-address. The problem here is that a) this cost alot of money for nothing, b)if something is send from the backoffice it's still possible that the smart device is not reachable because the dummy data is not yet send. To solve this I try to send the message 10 times but even then it can fail.

I was wondering if anybody here had similar problems and how did you solve them I can post the listener code if you wish, but I don't thing the problem lies there...

The smart device is a Psion Teklogix 7525 Workabout Pro which runs WinCE.NET 4.20 and uses the GPRS network.

Any help strongly appreciated!

Re: Smart Devices General Incoming GPRS connection disconnects


sorry, I have no idea why you are experiencing these problems, but given the connectivity of devices, would it not be better for the device to pull data, rather than a server push data to the device

The main reason for this is that the server will never know if the device is currently connected, even if it was connected 1 second ago when you pinged it.

Additionally, does your approach not mean that the devices need to be permanently connected to the net This is expensive & devices can lose a connection quite easily, esp if you're moving around

Re: Smart Devices General Incoming GPRS connection disconnects

Ilya Tumanov

How do you know device IP and how do you track changes to that IP from back office Do you have special agreement with carrier to allow for incoming TCP/IP connections over GPRS with fixed IP on the phone

In general devices on GPRS networks are not reachable, only devices themselves could initiate TCP connection.

Re: Smart Devices General Incoming GPRS connection disconnects



I'm not sure. My customer bought a range of phone numbers/ip addresses. The IP address changes every time the smart devices reboot and at logon I send the IP to the backoffice and it was reachable. Everytime I send a message from the smart device to the backoffice, I check the current IP with the previous IP and if it's different I update it in the backoffice.

Re: Smart Devices General Incoming GPRS connection disconnects

Ilya Tumanov

That means you're not using static IP, so IP can change any time for any reason (e.g. switch to another base station). Also, GPRS is subject to bandwidth availability, it can stop working or became very slow at any moment.

That means the instability you see is quite expected and should be handled by your application on both server and client sides.

For example, device should do constant IP monitoring and report changes to the server, probably periodic reports is a good idea as well. Data transmission protocol should be designed to handle disconnects and should retry in case of errors.

Even that does not guarantee results and could be expensive in terms of traffic. For example, Microsoft¡¯s implementation of push e-mail actually uses connection originated from device, server never connects to the device on it¡¯s own for reasons above.

Re: Smart Devices General Incoming GPRS connection disconnects


It may seem random, but have you checked the "advanced" settings for your GPRS connection for the timeout/disconnect value I've experienced this behavior as "random" as well, but it turned out there was simply activity I was unaware of that was keeping it alive.

Re: Smart Devices General Incoming GPRS connection disconnects

Selva kumar


I am also facing the same problem...

I am conveying the IP address of the PDA to the server through webservice.

I can able to bind to server's listening socket from the PDA. But I am unable to bind the PDA's listening socket from the Server.


The sample application, along with the source code, in the above link is binding the PDA's listening socket from the server.

If it is not possible for the server to initiate a TCP connection to a device, then how is it possible in the above sample application