2011-11-11 2 views
0

wince 4.2 장치 용 Bluetooth 클라이언트 프로그램을 작성했습니다. 장치 검색이 정상적으로 작동합니다. 그러나 PC에 연결하려고하면 연결 기능이 즉시 오류 코드 10053과 함께 반환됩니다. 연결 요청이 인증 코드를 입력하라는 메시지와 함께 PC에 의해 처리되었지만 대기 상태 장치가 대기하지 않는 것 같습니다.WinCE : 연결 중 10053 오류

이 문제의 원인은 무엇입니까?

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 : 나는 다음 단계 (단순 제거 오류 처리)를 사용하고 있습니다. PC가 연결을 인식하고 인증을 위해 PIN을 입력하라는 메시지를 표시 했음에도 불구하고 기다리지 않습니다.

답변

0

페어링/인증 문제인 것처럼 설명하고 있습니다. 또한 setsockopt 기능을 사용하여 고려해야합니다 http://msdn.microsoft.com/en-us/library/ms863347.aspx

당신은 MSDN에 따라 SO_BTH_AUTHENTICATE 옵션을 사용하려고한다 : 연결된 소켓에

을, 인증을 트리거합니다. 연결되지 않은 소켓에서는 연결시 인증을 강제합니다. 들어오는 연결의 경우 이는 인증을 수행 할 수없는 경우 연결이 거부됨을 의미합니다.

따라서 connect 함수를 호출하기 전에 소켓에 ​​옵션을 설정해야합니다.