WinCE: ошибка 10053 при подключении - PullRequest
0 голосов
/ 12 ноября 2011

Я написал клиентскую программу Bluetooth для устройства wince 4.2.Обнаружение устройства работает нормально.Однако, когда я пытаюсь подключиться к ПК, функция подключения немедленно возвращается с кодом ошибки 10053.Запрос на соединение обрабатывался ПК с предложением ввести код аутентификации, но устройство wince, похоже, не ждет.

Что может быть причиной этой проблемы?Я использую следующие шаги (для простоты удалена обработка ошибок):

WSAStartup(..)…////was successful.

SOCKET m_Socket =Socket (AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM); //was successful.

SOCKADDR_BTH sClinet;
memset (&sClinet, 0, sizeof(sClinet));
sClinet.addressFamily = AF_BTH;
sClinet.btAddr = btd.btaddr; ; //BT_ADDR of the PC obtained via Device Discovery..
sClinet.port = BT_PORT_ANY; //I did try 0, did not help!
sClinet.serviceClassId = RFCOMM_PROTOCOL_UUID; 

int nConErr = connect (m_Socket, (SOCKADDR *)&sClinet, sizeof(sClinet));

nConErr немедленно возвращает 10053.Он даже не ждет, хотя ПК распознал соединение и запросил сообщение для ввода PIN-кода для аутентификации.

1 Ответ

0 голосов
/ 13 ноября 2011

Из того, что вы описываете, похоже, что это проблема спаривания / аутентификации.Также следует рассмотреть возможность использования функции setsockopt: http://msdn.microsoft.com/en-us/library/ms863347.aspx

Вам следует попробовать использовать опцию SO_BTH_AUTHENTICATE, которая в соответствии с MSDN:

На подключенном разъемезапускает аутентификацию.На неподключенном сокете - принудительная аутентификация при подключении.Для входящего соединения это означает, что соединение отклоняется, если аутентификация не может быть выполнена.

Поэтому перед вызовом функции connect необходимо установить параметры для вашего сокета.

...