Неблокирующая запись в сокет в Android

1

У меня есть Android-приложение с открытым Socket. Я хотел бы написать в этот сокет без какой-либо возможности блокировки потока в записи за заметное количество времени. Если какая-либо ошибка ввода-вывода происходит, я бы хотел, чтобы запись просто молчала. Есть простой способ сделать это?

  • 3
    Выполнить запись в отдельном потоке?
  • 0
    @MByD: тьфу. Нет, просто нет. Потоки не заменяют неблокирующий ввод / вывод.
Показать ещё 5 комментариев
Теги:
sockets
nonblocking
java-io

2 ответа

3

Да, NIO предоставляет класс SocketChannel (вызов метода getChannel на вашем Socket), который позволяет вызывать configureBlocking для использования неблокирующего режима. Затем вы должны выполнять все операции ввода-вывода через канал, а не через объект Socket.

2

Возможно, вы захотите рассмотреть NIO:

http://developer.android.com/reference/java/nio/channels/package-summary.html

  • 0
    -1 SCITE. Не потому, что ваш ответ неправильный (это не так), а потому, что он предоставляет меньше информации, чем мой ответ, и опубликован на 3 минуты позже.
  • 0
    Я думал, что все еще удобно иметь ссылку на пакет java.nio.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню