Windows 소켓 프로그래밍에 대한 도움이 필요합니다. 블루투스를 통한 TCP를 통해 안드로이드 폰 (클라이언트)과 C++ 애플리케이션 (서버) 사이의 통신을 만들고 싶습니다. 서버 측에서는 Windows 소켓을 사용합니다.블루투스 (Windows 소켓)를 통한 TCP
RFCOMM을 통해 두 인스턴스간에 연결을 이미 설정했지만 TCP/IP를 통해 연결하려고합니다. 누구든지 Windows에서 Bluetooth 소켓을 만들고 TCP 메시지를 보낼 수있는 방법을 알고 있습니까?
고맙습니다.
퍼센트 최근 %
************* 업데이트 ***********, 나는 창문 스택을 통해이를 구현하기 위해 노력했다. 연결은 설정되었지만 통신은 여전히 rfcomm 기반입니다. 누구든지 내 잘못이나 거짓 생각이 어디에 있는지 알고 있습니까?
serverSocket = socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);
// error checks
SOCKADDR_BTH sa;
memset (&sa, 0, sizeof(sa));
sa.addressFamily = AF_BTH;
sa.port = 11 & 0xff;
sa.serviceClassId = TCP_PROTOCOL_UUID;
bind(serverSocket, (SOCKADDR*)&sa, sizeof(sa));
// error checks
// Register Service
WSAQUERYSET service1;
memset(&service1, 0, sizeof(service1));
service1.dwSize = sizeof(service1);
service1.lpszServiceInstanceName = _T("ViL Data...");
service1.lpszComment = _T("Pushing data to Android");
GUID serviceID1 = TCP_PROTOCOL_UUID;
service1.lpServiceClassId = &serviceID1;
service1.dwNumberOfCsAddrs = 1;
service1.dwNameSpace = NS_BTH;
CSADDR_INFO csAddr1;
memset(&csAddr1, 0, sizeof(csAddr1));
csAddr1.LocalAddr.iSockaddrLength = sizeof(SOCKADDR_BTH);
csAddr1.LocalAddr.lpSockaddr = (sockaddr*)&sa;
csAddr1.iSocketType = SOCK_STREAM;
csAddr1.iProtocol = IPPROTO_TCP;
service1.lpcsaBuffer = &csAddr1;
WSASetService(&service1, RNRSERVICE_REGISTER, 0)
// error checkings
이것은 모두 정상적으로 작동하며 Android 앱에서 서버에 연결할 수 있습니다. 하지만 TCP를 통해 전송하지 않는 이유는 아직도 혼란 스럽습니다. 누구든지 도와 줄 수 있습니까?
예 저는 Windows 스택을 사용하여이를 수행하고 rfcomm을 실행하려고 합니다만 지금까지는 그 해결책이 없습니다. 그러나, 나는 창 제어판에서 PPP를 만드는 것에 대해 생각해 본 적이 없다. 나는 그것을 시도 할 것이다 - 고마워요! – Lynguistic
@Lynguistic 그게 당신이 블루투스 인터넷 연결을 사용하는 방법입니다 : 당신은 항상 연결되어있는 모뎀처럼 취급하고 다른 일반적인 모뎀과 마찬가지로 : PPP를 사용하여 연결하십시오. –