1. A method for a client to prioritize network communications of the client associated with an application of the client, the method comprising the steps of: intercepting, by the client, a plurality of network packets associated with a first application and second application of the client; storing, by the client, the plurality of network packets to a queue, with at least one packet associated with the second application placed ahead of at least one packet associated with the first application in the queue; determining, by the client, that the first application is running in the foreground on the client; setting, by the client, a priority for the at least one packet associated with the first application to a value higher than a priority for the at least one packet associated with the second application, responsive to the determination that the first application is running in the foreground on the client; placing, by the client, the at least one network packet associated with the first application ahead of the at least one network packet associated with the second application in the queue, responsive to the set priorities for the at least one packet associated with the first application providing the at least one network packet associated with the first application of the client for communications via a network stack of the client before providing the at least one network packet associated with the second application of the client for communications via the network stack, responsive to the placement of the network packets in the queue; and holding, by the client, in the queue the at least one network packet associated with the second application, and releasing the held at least one network packet upon communication of the at least one network packet associated with the first application prioritized ahead of the held at least one network packet.