Задержка ответа сокета Android 3.0 - PullRequest
0 голосов
/ 10 августа 2011

Я запустил проект Android, использующий программирование сокетов.Платформа Android 3.0.Из-за требований платформы я применяю операции с сокетами в AsyncTask.

Я подключаюсь к серверу, успешно отправляю команды, но проблема в том, что полученные ответы приходят не полностью.После отправки команды мне нужно некоторое время подождать, пока ответ не придет полностью, иначе это просто частичный ответ.Как я узнал, я получаю полный ответ, когда жду в режиме отладки, я подождал некоторое время, прежде чем перейти к следующей строке кода, в которой я использую переменную ответа, и получил полный ожидаемый результат.

Я попытался установить таймер

Timer myTimer = new Timer();

myTimer.wait(2000);

, но это просто заставило весь ответ вообще не работать.Любые предложения будут высоко оценены.

1 Ответ

0 голосов
/ 10 августа 2011

Прежде всего, у вас не должно быть этой проблемы. Вероятно, что-то не так с вашим сетевым подключением, потому что это время задержки не является нормальным для любой платформы. Но если вы хотите заняться этим программно, читайте дальше.

Вы не хотите использовать таймер для этого, потому что:

a) даже после ожидания вы не можете быть уверены, что получили значение, и

б) вы будете без необходимости тормозить, если получите значение быстро.

Лучший вариант - иметь некоторый код, который проверяет полученное значение в цикле, чтобы увидеть, завершено ли оно, и, как только это произойдет, перейти к следующему биту.

...