Grisha
♙ ▁ ▂ ▃ ▅ ▆ █ ♚
- Регистрация
- 30 Сен 2012
- Сообщения
- 192
- Реакции
- 287
- Автор темы
- #1
Есть несколько планшетов с андроидом и сервер на винде. С сервера передаются вопросы с вариантами ответов, а с планшетов на сервер передаётся номер ответа.
При одновременном нажатии кнопок на планшетах сервер получает номера одной строкой, что является ошибкой. При неодновременном нажатии (то есть только на одном планшете в одно время) такой проблемы нет.
Попробовал с сервера по очереди с задержкой давать планшетам разрешение на передачу, но возникла проблема.
Нажатие кнопки на планшете:
...
Log.d(LOG_TAG, "ALLOWED setOK " + ALLOWED);
do
{
WrBool = proverka(); Здесь виснем, если ALLOWED == false
}
while (!WrBool);
Log.d(LOG_TAG, "ALLOWED OK " + WrBool);
...
В функции proverka() читаем ALLOWED
Получение разрешения с сервера:
...
case '6': // опрос
ALLOWED = true;
Log.d(LOG_TAG, "ALLOWED 6 " + ALLOWED);
set_timer3(); // устанавливает ALLOWED в false с задержкой
break;
По идее в цикле do-while мы должны дождаться разрешения с сервера (ALLOWED = true), но если нажали кнопку при
ALLOWED == false, цикл глухо виснет.
Что можно сделать?
При одновременном нажатии кнопок на планшетах сервер получает номера одной строкой, что является ошибкой. При неодновременном нажатии (то есть только на одном планшете в одно время) такой проблемы нет.
Попробовал с сервера по очереди с задержкой давать планшетам разрешение на передачу, но возникла проблема.
Нажатие кнопки на планшете:
...
Log.d(LOG_TAG, "ALLOWED setOK " + ALLOWED);
do
{
WrBool = proverka(); Здесь виснем, если ALLOWED == false
}
while (!WrBool);
Log.d(LOG_TAG, "ALLOWED OK " + WrBool);
...
В функции proverka() читаем ALLOWED
Получение разрешения с сервера:
...
case '6': // опрос
ALLOWED = true;
Log.d(LOG_TAG, "ALLOWED 6 " + ALLOWED);
set_timer3(); // устанавливает ALLOWED в false с задержкой
break;
По идее в цикле do-while мы должны дождаться разрешения с сервера (ALLOWED = true), но если нажали кнопку при
ALLOWED == false, цикл глухо виснет.
Что можно сделать?
Последнее редактирование: