Patent ID: 7664067

Claim:
A wireless device comprising: a network protocol stack including at least one layer configured to establish an open socket connection with a remote server via a wireless communication channel established over a wireless network, the network protocol stack including an application layer operable to execute one or more applications configured to transmit and receive data over the open socket connection; and a device resumable socket module configured to: emulate the open socket connection to the one or more applications when connectivity of the wireless communication channel is lost, the open socket connection emulated via a virtual socket connection between the device resumable socket module and a service resumable socket module, the device resumable socket module including a device byte counter configured to track device transmitted data bytes to the remote server and track device received data bytes from the remote server, the service resumable socket module including a service byte counter configured to track server transmitted data bytes to the wireless device and track server received data bytes from the wireless device; and synchronize with the service resumable socket module to resume the open socket connection when the connectivity of the wireless communication channel is reestablished, the device resumable socket module and the service resumable socket module synchronized based at least in part on: retransmission of the device data bytes to the remote server, the device data bytes being stored in a buffer and selected for the retransmission based on the device byte counter tracking the device transmitted data bytes to the remote server, and based on the service byte counter tracking the server received data bytes from the wireless device; and reception of the server data bytes from the remote server, the server data bytes being stored in a remote buffer and transmitted to the wireless device based on the service byte counter tracking the server transmitted data bytes to the wireless device, and based on the device byte counter tracking the device received data bytes from the remote server.