Android - открыть несколько сокетов (входной и выходной потоки) для одного подключения - PullRequest
0 голосов
/ 09 февраля 2011

Я могу успешно подключить через Bluetooth мой телефон Nexus One Android к другому телефону Bluetooth Android.Я могу использовать входной и выходной потоки для соединения, писать свои запросы и читать их ответы.Мое приложение использует данные в реальном времени для обработки.Мне было интересно, есть ли способ открыть два потока ввода / вывода на разных сокетах (вроде как выделенные сокеты) для общения?И если да, то как я могу это сделать?Любые указатели были бы полезны ...

mmSocket.connect ();

public void connect () Поскольку: Уровень API 5 Попытка подключения к удаленному устройству.

Этот метод блокируется до тех пор, пока не будет установлено соединение или соединение не будет установлено.Если этот метод возвращает без исключения, этот сокет теперь подключен.

Не следует пытаться создавать новые подключения к удаленным устройствам Bluetooth во время обнаружения устройства.Обнаружение устройства представляет собой сложную процедуру на адаптере Bluetooth и значительно замедляет подключение устройства.Используйте cancelDiscovery (), чтобы отменить текущее обнаружение.Обнаружение не управляется Activity, но запускается как системная служба, поэтому приложение всегда должно вызывать cancelDiscovery (), даже если оно не запрашивало обнаружение напрямую, просто чтобы быть уверенным.

Теперь мой вопрос: как я могу подключиться, используя два сокета ... потому что функция, описанная выше, использует сокет для подключения ... И после подключения он отключает любую другую попытку другого сокета ????

1 Ответ

2 голосов
/ 09 февраля 2011

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

Ваш вопрос, откровенно говоря, немного расплывчатый, поэтому я не думаю, что вы получите какие-либо хорошие ответы, если вы не определите его немного: что именно вы хотите сделать? Зачем вам нужно более одной розетки? Для чего нужен второй разъем?

...