Цитата
Соединение должно быть закрыто сервером при молчании клиента более 20 минут.
Да ну? Откуда такое требование? Не говоря уже о том, что RFC1122 говорит о двухчасовом периоде Keep-Alive по дефолту.
Другое дело, что 2 часа - весьма занадто для GPRS. Так что лучше выбрать время поменьше. Правда, под виндой это время устанавливается единоразово ключем в реестре. Так что для портабельности лучше делать собственный Keep-Alive в виде маленького пакетика данных, посылаемого с нужным периодом.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин