Я новичок в winsock, и я хочу использовать bluetooth для своего проекта.Открытие удаленных устройств Winsock
Я написал простой код, принимая помощь от онлайновых ресурсов для поиска удаленных устройств
Он должен напечатать название удаленных устройств, но вместо этого он печатает некоторые шестнадцатеричного значения, я думаю ... Я не знаю, что это такое
код
#include "stdafx.h"
#include<iostream>
#include<winsock2.h>
#include<ws2bth.h>
#include<bluetoothapis.h>
#include<stdlib.h>
using namespace std;
#define SUCCESS 0
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "irprops.lib")
int main()
{
WSADATA data;
int result;
result = WSAStartup(MAKEWORD(2, 2), &data);
if (result != SUCCESS)
{
cout << "error occured while initialising winsock...";
exit(result);
}
cout << "winsock initialisation successful\n";
WSAQUERYSET queryset;
memset(&queryset, 0, sizeof(WSAQUERYSET));
queryset.dwSize = sizeof(WSAQUERYSET);
queryset.dwNameSpace = NS_BTH;
HANDLE hLookup;
result = WSALookupServiceBegin(&queryset, LUP_CONTAINERS, &hLookup);
if (result != SUCCESS)
{
cout << "error in initialising look up service\n";
exit(result);
}
cout << "initialising lookup service successful\n";
BYTE buffer[4096];
memset(buffer, 0, sizeof(buffer));
DWORD bufferLength = sizeof(buffer);
WSAQUERYSET *pResults = (WSAQUERYSET*)&buffer;
while (result == SUCCESS)
{
result = WSALookupServiceNext(hLookup, LUP_RETURN_NAME | LUP_CONTAINERS | LUP_RETURN_ADDR | LUP_FLUSHCACHE | LUP_RETURN_TYPE | LUP_RETURN_BLOB | LUP_RES_SERVICE, &bufferLength, pResults);
if (result == SUCCESS)
{
//DEVICE FOUND
LPTSTR s = pResults->lpszServiceInstanceName;
cout << s << endl;
Sleep(1000);
}
}
WSALookupServiceEnd(hLookup);
return 0;
}
мне нужна помощь в решении этого вопроса
заранее спасибо за любую помощь
Спасибо большое ... –
Теперь я не могу распечатать адрес Bluetooth ......... Я использую .... BTH_ADDR b = ((SOCKADDR_BTH *) pResults-> lpcsaBuffer-> RemoteAddr.lpSockaddr) -> btAddr; ............. а затем я печатаю b, используя wcout ... но я не получаю адрес ..... Как я могу его исправить? ?? –
@DebeshMohanty: Определение для 'BTH_ADDR' -' typedef ULONGLONG BTH_ADDR; '(см. * Bluetoothapis.h *). Начиная с C++ 11, 'std :: wcout' может выводить значения' unsigned long long'. Чтобы сделать это более читаемым, вы можете использовать шестнадцатеричную систему цифр: 'std :: wcout << std :: hex << b;'. Если вам нужно дополнительное форматирование, вы должны [задать новый вопрос] (http://stackoverflow.com/questions/ask). – IInspectable