Асинхронное чтение сокетов - PullRequest
0 голосов
/ 04 мая 2011

Я новичок в разработке на Java / Android, и сейчас я пытаюсь обойти некоторые сетевые операции ввода-вывода, особенно через сокеты.

Я пытаюсь найти лучший способ достижения функциональности, когдаЯ открываю сокет-соединение с сервером и оставляю его открытым, чтобы сервер мог отправлять незапрошенные данные моему клиенту.Я могу относительно легко реализовать модель команда-ответ в отдельном потоке, используя AsyncTask.

Есть ли способ выполнить асинхронное чтение на открытом Socket в Android (в .Net я использовал Socket.BeginReceive, чтобы добиться этого).Или, если это не удалось, есть ли блокирующее чтение для сокета, которое я могу вставить в рабочий поток, в то же время позволяя основному потоку записывать в тот же сокет, пока чтение заблокировано?

Любой совет с благодарностью.

1 Ответ

1 голос
/ 04 мая 2011

Сокет .getInputStream (). Read () можно использовать в AsyncTask.Он блокирует.

Socket.getOutpuStream (). Write () может быть помещен в ваш основной поток и будет работать нормально, если чтение блокируется в другом потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...