Можно ли установить два соединения (или более) между ПК и другим устройством? Когда я пытаюсь это сделать, у меня возникает исключение: 10048 -> ex.Message = «Запрос на подключение был сделан на уже подключенном сокете xxxxxxxxxxxx: 0000110100001000800000805f9b34fb». Если нет, то есть обходной путь? Я использовал библиотеку 32feet для написания приложения.
Bluetooth -> Winapi/32 фута. Два подключения с ПК к одному устройству с помощью Spp
Ответы (3)
Я только что подключил 4 устройства (spp) одновременно и периодически передавал данные.
так что точно можно.
если одно устройство отключено, другое соединение больше не может получать данные, но я думаю, что это просто ошибка в моем коде.
было бы очень интересно, если бы кто-нибудь еще пробовал это.
Я думаю, это невозможно. Между ведущим и ведомым может существовать одно соединение. Мастер может быть одновременно подключен к 7 активным ведомым устройствам.
И, скорее всего, другое используемое вами устройство может поддерживать только одно соединение. В вашем случае к компьютеру можно подключить до 7 устройств.
Это ограничение RFCOMM, а не ограничение нижних уровней стека Bluetooth. См. обходной путь, описанный в документации 32feet.NET https://32feet.codeplex.com/wikipage?title=General%20Bluetooth%20Data%20Connections
- Заметки
[1] Одно соединение RFCOMM является ограничением протокола. TCP/IP имеет номера портов на концах источника и назначения и, таким образом, может поддерживать несколько соединений, RFCOMM имеет только номер удаленного канала, поэтому может поддерживать только одно соединение.
Если вам нужно несколько подключений и вы контролируете «серверное» устройство, тогда служба должна прослушивать два (или более) канала RFCOMM, чтобы клиент мог подключаться к разным номерам каналов.