I am working on an application that requires long-running socket or datagram connections to a server. During these connections, data is exchanged every few seconds between the client and the server.

I have noticed that occasionally, a write to the socket, or a read from the socket will stall for a long time (between 10 and 100 seconds). This happens for around .02% of the messages, but it is still very annoying when it does happen. Has anybody else seen this? Is this an inherent property of the GSM network the connections go over? Is there a way to fix this?

Any help would be greatly appreciated,