亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? opttest.cxx

?? This a sample Bluetooth application which illustrates the use of Windows CE Bluetooth stack WinSock
?? CXX
?? 第 1 頁 / 共 3 頁
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/**
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.


Abstract:
	Windows CE Bluetooth application sample

**/
#include <windows.h>
#include <winsock.h>
#include <ws2bth.h>

#define BUF_MAX 256

int GetDI (WCHAR **pp, unsigned int *pi) {
	while (**pp == ' ')
		++*pp;

	int iDig = 0;
	*pi = 0;
	while (iswdigit (**pp)) {
		int c = **pp;

		c = c - '0';

		if ((c < 0) || (c > 9))
			return FALSE;

		*pi = *pi * 10 + c;

		++*pp;

		++iDig;
	}

	if ((iDig <= 0) || (iDig > 10))
		return FALSE;

	return TRUE;
}

int GetBA (WCHAR **pp, BT_ADDR *pba) {
	while (**pp == ' ')
		++*pp;

	for (int i = 0 ; i < 4 ; ++i, ++*pp) {
		if (! iswxdigit (**pp))
			return FALSE;

		int c = **pp;
		if (c >= 'a')
			c = c - 'a' + 0xa;
		else if (c >= 'A')
			c = c - 'A' + 0xa;
		else c = c - '0';

		if ((c < 0) || (c > 16))
			return FALSE;

		*pba = *pba * 16 + c;
	}

	for (i = 0 ; i < 8 ; ++i, ++*pp) {
		if (! iswxdigit (**pp))
			return FALSE;

		int c = **pp;
		if (c >= 'a')
			c = c - 'a' + 0xa;
		else if (c >= 'A')
			c = c - 'A' + 0xa;
		else c = c - '0';

		if ((c < 0) || (c > 16))
			return FALSE;

		*pba = *pba * 16 + c;
	}

	if ((**pp != ' ') && (**pp != '\0'))
		return FALSE;

	return TRUE;
}

#define GUID_FORMAT     L"%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x\n"
#define GUID_ELEMENTS(p) \
    &p->Data1,                 &p->Data2,    &p->Data3,\
    &p->Data4[0], &p->Data4[1], &p->Data4[2], &p->Data4[3],\
    &p->Data4[4], &p->Data4[5], &p->Data4[6], &p->Data4[7]


int GetGUID(WCHAR *psz, GUID *pGUID) {
	return (11 ==  swscanf(psz,GUID_FORMAT,GUID_ELEMENTS(pGUID)));
}

#define BPR		8

int GetUx (WCHAR **pp, void *pRes, int nDigs) {
	while (**pp == ' ')
		++*pp;
	if (**pp != '0')
		return FALSE;
	++*pp;
	if (**pp != 'x')
		return FALSE;

	++*pp;

	int iDig = 0;
	int iRes = 0;
	while (iswxdigit (**pp)) {
		int c = **pp;
		if (c >= 'a')
			c = c - 'a' + 0xa;
		else if (c >= 'A')
			c = c - 'A' + 0xa;
		else c = c - '0';

		if ((c < 0) || (c > 16))
			return FALSE;

		iRes = iRes * 16 + c;

		++*pp;

		++iDig;
	}

	if (iDig > nDigs)
		return FALSE;

	switch (nDigs) {
	case 2:
		*(unsigned char *)pRes = (unsigned char)iRes;
		break;
	case 4:
		*(unsigned short *)pRes = (unsigned short)iRes;
		break;
	case 8:
		*(unsigned int *)pRes = (unsigned int)iRes;
		break;
	}

	return TRUE;
}

void DumpBuff (WCHAR *szLineHeader, unsigned char *lpBuffer, unsigned int cBuffer) {
	WCHAR szLine[5 + 7 + 2 + 4 * BPR];

	for (int i = 0 ; i < (int)cBuffer ; i += BPR) {
		int bpr = cBuffer - i;
		if (bpr > BPR)
			bpr = BPR;

		wsprintf (szLine, L"%04x ", i);
		WCHAR *p = szLine + wcslen (szLine);

		for (int j = 0 ; j < bpr ; ++j) {
			WCHAR c = (lpBuffer[i + j] >> 4) & 0xf;
			if (c > 9) c += L'a' - 10; else c += L'0';
			*p++ = c;
			c = lpBuffer[i + j] & 0xf;
			if (c > 9) c += L'a' - 10; else c += L'0';
			*p++ = c;
			*p++ = L' ';
		}

		for ( ; j < BPR ; ++j) {
			*p++ = L' ';
			*p++ = L' ';
			*p++ = L' ';
		}

		*p++ = L' ';
		*p++ = L' ';
		*p++ = L' ';
		*p++ = L'|';
		*p++ = L' ';
		*p++ = L' ';
		*p++ = L' ';

		for (j = 0 ; j < bpr ; ++j) {
			WCHAR c = lpBuffer[i + j];
			if ((c < L' ') || (c >= 127))
				c = L'.';

			*p++ = c;
		}

		for ( ; j < BPR ; ++j) {
			*p++ = L' ';
		}

		*p++ = L'\n';
		*p++ = L'\0';

		wprintf (L"%s %s", szLineHeader ? szLineHeader : L"", szLine);
	}
}

static void DumpFeatures (unsigned char *pf) {
	wprintf (L"Supported LMP features:\n");
	if ((*pf) & 0x01)
		wprintf (L"\t3-slot packets\n");
	if ((*pf) & 0x02)
		wprintf (L"\t5-slot packets\n");
	if ((*pf) & 0x04)
		wprintf (L"\tencryption\n");
	if ((*pf) & 0x08)
		wprintf (L"\tslot offset\n");
	if ((*pf) & 0x10)
		wprintf (L"\ttiming accuracy\n");
	if ((*pf) & 0x20)
		wprintf (L"\tswitch\n");
	if ((*pf) & 0x40)
		wprintf (L"\thold\n");
	if ((*pf) & 0x80)
		wprintf (L"\tsniff\n");
	++pf;
	if ((*pf) & 0x01)
		wprintf (L"\tpark\n");
	if ((*pf) & 0x02)
		wprintf (L"\tRSSI\n");
	if ((*pf) & 0x04)
		wprintf (L"\tchannel-quality driven rate\n");
	if ((*pf) & 0x08)
		wprintf (L"\tSCO\n");
	if ((*pf) & 0x10)
		wprintf (L"\tHV2\n");
	if ((*pf) & 0x20)
		wprintf (L"\tHV3\n");
	if ((*pf) & 0x40)
		wprintf (L"\tu-law log\n");
	if ((*pf) & 0x80)
		wprintf (L"\ta-law log\n");
	++pf;
	if ((*pf) & 0x01)
		wprintf (L"\tCVSD\n");
	if ((*pf) & 0x02)
		wprintf (L"\tpaging scheme\n");
	if ((*pf) & 0x04)
		wprintf (L"\tpower control\n");
	if ((*pf) & 0x08)
		wprintf (L"\ttransparent SCO data\n");
	if ((*pf) & 0x10)
		wprintf (L"\tflow lag bit 0\n");
	if ((*pf) & 0x20)
		wprintf (L"\tflow lag bit 0\n");
	if ((*pf) & 0x40)
		wprintf (L"\tflow lag bit 0\n");
}

DWORD WINAPI ReadThread (LPVOID lpVoid) {
	wprintf (L"Reader thread started for socket 0x%08x\n", lpVoid);
	SOCKET s = (SOCKET)lpVoid;
	WCHAR szHeader[25];

	SOCKADDR_BTH sa;
	int size = sizeof(sa);

	if (0 == getsockname (s, (SOCKADDR *)&sa, &size)) {
		if (size != sizeof(sa)) {
			wprintf (L"getsockname returned incorrect size (%d, expected %d)\n", size, sizeof(sa));
			wcscpy (szHeader, L">>>>");
		} else {
			wsprintf (szHeader, L"%04x%08x 0x%02 >", GET_NAP(sa.btAddr), 
					GET_SAP(sa.btAddr), sa.port);
		}
	} else {
		wprintf (L"getsockname failed. Error = %d\n", WSAGetLastError ());
		wcscpy (szHeader, L">>>>");
	}

	for ( ; ; ) {
		char buffer[BUF_MAX];
		int len = recv (s, buffer, sizeof(buffer), 0);
		if (len <= 0)
			break;

		DumpBuff (szHeader, (unsigned char *)buffer, len);
	}

	closesocket (s);

	wprintf (L"Reader thread ended for socket 0x%08x\n", lpVoid);

	return 0;
}

static void Help (void) {
	wprintf (L"Use one of:\n\tEXIT\n\tSEND file\n\tTEXT string\n\tBIN binary data (list of 2 dig hex numbers)\n");
	wprintf (L"\tAUTH\n\tENCRYPT {on, off}\n\tPIN binary data (list of 2 dig hex numbers)\n\tMSC xx xx\n\tRLS xx\n");
	wprintf (L"\tXON dec number\n\tXOFF dec number\n\tSENDBUFF dec number\n\tRECVBUFF dec number\n\tGETALL\n\tGETVERSION\n");
	wprintf (L"\tHOLD xxxx xxxx\n\tSNIFF xxxx xxxx xxxx xxxx\n\t\n\tUNSNIFF\n\tPARK xxxx xxxx\n\tUNPARK\n");
	wprintf (L"\tGETMODE\n\tGETPOLICY\n\tSETPOLICY xxxx\n");
}

DWORD WINAPI WriteThread (LPVOID lpVoid) {
	wprintf (L"Writer thread started for socket 0x%08x\n", lpVoid);

	Help ();

	SOCKET s = (SOCKET)lpVoid;

	for ( ; ; ) {
		wprintf (L"> ");
		WCHAR szCommand[BUF_MAX];
		if (! fgetws (szCommand, BUF_MAX, stdin))
			break;

		WCHAR *szEOL = wcschr (szCommand, L'\n');
		if (szEOL)
			*szEOL = '\0';

		if (wcsicmp (szCommand, L"EXIT") == 0)
			break;

		if (wcsicmp (szCommand, L"GETALL") == 0) {
			union {
				int i;
				BTH_SOCKOPT_SECURITY bs;
				int iarr[2];
			};

			int iRes;
			int ilen = sizeof(bs);
			bs.iLength = 16;
			bs.btAddr  = 0;

			iRes = getsockopt (s, SOL_RFCOMM, SO_BTH_GET_LINK, (char *)&bs, &ilen);
			if (iRes)
				wprintf (L"SO_BTH_GET_LINK : error %d\n", iRes);
			else {
				unsigned char *arr = bs.caData;
				wprintf (L"SO_BTH_GET_LINK : key %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n",
					arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7],
					arr[8], arr[9], arr[10], arr[11], arr[12], arr[13], arr[14], arr[15]);
			}

			ilen = sizeof(i);
			iRes = getsockopt (s, SOL_RFCOMM, SO_BTH_GET_MTU, (char *)&i, &ilen);
			if (iRes)
				wprintf (L"SO_BTH_GET_MTU : error %d\n", iRes);
			else
				wprintf (L"SO_BTH_GET_MTU : mtu %d\n", i);

			ilen = sizeof(i);
			iRes = getsockopt (s, SOL_RFCOMM, SO_BTH_GET_MTU_MAX, (char *)&i, &ilen);
			if (iRes)
				wprintf (L"SO_BTH_GET_MTU_MAX : error %d\n", iRes);
			else
				wprintf (L"SO_BTH_GET_MTU_MAX : max mtu %d\n", i);

			ilen = sizeof(i);
			iRes = getsockopt (s, SOL_RFCOMM, SO_BTH_GET_MTU_MIN, (char *)&i, &ilen);
			if (iRes)
				wprintf (L"SO_BTH_GET_MTU_MIN : error %d\n", iRes);
			else
				wprintf (L"SO_BTH_GET_MTU_MIN : min mtu %d\n", i);

			ilen = sizeof(i);
			iRes = getsockopt (s, SOL_RFCOMM, SO_BTH_GET_XON_LIM, (char *)&i, &ilen);
			if (iRes)
				wprintf (L"SO_BTH_GET_XON_LIM : error %d\n", iRes);
			else
				wprintf (L"SO_BTH_GET_XON_LIM : xon %d\n", i);

			ilen = sizeof(i);
			iRes = getsockopt (s, SOL_RFCOMM, SO_BTH_GET_XOFF_LIM, (char *)&i, &ilen);
			if (iRes)
				wprintf (L"SO_BTH_GET_XOFF_LIM : error %d\n", iRes);
			else
				wprintf (L"SO_BTH_GET_XOFF_LIM : xoff %d\n", i);

			ilen = sizeof(i);
			iRes = getsockopt (s, SOL_RFCOMM, SO_BTH_GET_SEND_BUFFER, (char *)&i, &ilen);
			if (iRes)
				wprintf (L"SO_BTH_GET_SEND_BUFFER : error %d\n", iRes);
			else
				wprintf (L"SO_BTH_GET_SEND_BUFFER : send buf %d\n", i);

			ilen = sizeof(i);
			iRes = getsockopt (s, SOL_RFCOMM, SO_BTH_GET_RECV_BUFFER, (char *)&i, &ilen);
			if (iRes)
				wprintf (L"SO_BTH_GET_RECV_BUFFER : error %d\n", iRes);
			else
				wprintf (L"SO_BTH_GET_RECV_BUFFER : recv buf %d\n", i);

			ilen = sizeof(iarr);
			iRes = getsockopt (s, SOL_RFCOMM, SO_BTH_GET_V24_BR, (char *)iarr, &ilen);
			if (iRes)
				wprintf (L"SO_BTH_GET_V24_BR : error %d\n", iRes);
			else
				wprintf (L"SO_BTH_GET_V24_BR : v24 %d br %d\n", iarr[0], iarr[1]);

			ilen = sizeof(i);
			iRes = getsockopt (s, SOL_RFCOMM, SO_BTH_GET_RLS, (char *)&i, &ilen);
			if (iRes)
				wprintf (L"SO_BTH_GET_RLS : error %d\n", iRes);
			else
				wprintf (L"SO_BTH_GET_RLS : v24 %d\n", i);

			ilen = sizeof(i);
			iRes = getsockopt (s, SOL_RFCOMM, SO_BTH_GET_FLOW_TYPE, (char *)&i, &ilen);
			if (iRes)
				wprintf (L"SO_BTH_GET_FLOW_TYPE : error %d\n", iRes);
			else
				wprintf (L"SO_BTH_GET_FLOW_TYPE : flow %s\n", i == 0 ? L"NOT CREDIT" : ((i == 1) ? L"CREDIT" : L"UNKNOWN"));

			continue;
		}

		if (wcsicmp (szCommand, L"AUTH") == 0) {
			int empty = 0;
			wprintf (L"setsockopt returns %d\n",
				setsockopt (s, SOL_RFCOMM, SO_BTH_AUTHENTICATE, (char *)&empty, sizeof(empty)));
			continue;
		}

		if (wcsicmp (szCommand, L"ENCRYPT ON") == 0) {
			int e = TRUE;
			wprintf (L"setsockopt returns %d\n",
				setsockopt (s, SOL_RFCOMM, SO_BTH_ENCRYPT, (char *)&e, sizeof(e)));

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合丁香婷婷六月香| 91黄色免费看| 国产三级精品三级| jlzzjlzz欧美大全| 午夜影视日本亚洲欧洲精品| 日韩欧美一区在线| 成人av片在线观看| 一区2区3区在线看| 久久亚洲综合色| 欧美视频三区在线播放| 国产成人精品免费网站| 亚洲成人精品一区| 日韩专区在线视频| 一色屋精品亚洲香蕉网站| 91精品国产高清一区二区三区| 国产精品77777竹菊影视小说| 91日韩一区二区三区| 偷拍日韩校园综合在线| 国产精品传媒视频| 欧美精品一区二区在线观看| 欧美三级日韩在线| 色综合久久久久久久久久久| 国产一区二区免费视频| 日日嗨av一区二区三区四区| 蜜臂av日日欢夜夜爽一区| 亚洲免费观看高清完整版在线| 2021久久国产精品不只是精品| 久久久久久久综合| 26uuu欧美日本| 国产精品女同互慰在线看| 亚洲精品一区二区三区四区高清| 久久免费的精品国产v∧| 国产精品毛片久久久久久| 一区二区高清视频在线观看| 日韩二区三区四区| 亚洲福利视频导航| 亚洲黄色免费网站| 亚洲精品日日夜夜| 丝袜国产日韩另类美女| 国产一区二区三区美女| 成人app网站| 欧美精品一卡二卡| 欧美日韩国产精品成人| 欧美日韩精品系列| 久久久久久久久久看片| 亚洲欧美日韩国产另类专区| 五月天激情综合| 成人午夜精品在线| 懂色av一区二区三区蜜臀| 欧美电影影音先锋| 精品日韩欧美一区二区| 日韩欧美亚洲国产另类| 欧美一区二区三区公司| 中文字幕国产一区| 日本一区二区三级电影在线观看| 亚洲免费伊人电影| 精品在线一区二区| 狠狠色狠狠色合久久伊人| 国产在线日韩欧美| 在线观看国产日韩| 欧美福利视频一区| 亚洲欧美中日韩| 久久www免费人成看片高清| 狠狠狠色丁香婷婷综合久久五月| 91亚洲午夜精品久久久久久| 精品少妇一区二区三区在线视频| bt欧美亚洲午夜电影天堂| 欧美精品自拍偷拍动漫精品| 国产精品人成在线观看免费 | 久久精品水蜜桃av综合天堂| 精品国产乱码久久久久久闺蜜| 一区二区三区在线视频观看58| 韩国精品免费视频| 91精品在线观看入口| 欧美一区二区在线免费播放| 亚洲天堂免费在线观看视频| 亚洲国产综合91精品麻豆| 风流少妇一区二区| 欧美tickling挠脚心丨vk| 亚洲一区二区偷拍精品| 成人黄色免费短视频| 2022国产精品视频| 奇米精品一区二区三区在线观看一| 国内精品久久久久影院色| 欧美亚洲综合在线| 亚洲三级在线播放| 国产99精品视频| 久久人人爽人人爽| 激情文学综合插| 日韩欧美色综合| 婷婷成人激情在线网| 色嗨嗨av一区二区三区| 中文字幕制服丝袜成人av| 国产成人在线观看| 久久亚区不卡日本| 国内久久精品视频| 日韩精品在线网站| 免费日本视频一区| 日韩一二在线观看| 青青草视频一区| 3d成人h动漫网站入口| 亚洲成a人片综合在线| 欧美丝袜丝交足nylons图片| 一区二区三区不卡视频| 在线观看视频欧美| 亚洲一区二区欧美日韩| 欧美性色aⅴ视频一区日韩精品| 亚洲狼人国产精品| 色综合亚洲欧洲| 久久婷婷国产综合国色天香| 激情小说欧美图片| 久久久久久久精| 国产精品中文字幕日韩精品| 国产色综合一区| 成人国产精品免费观看视频| 国产精品乱人伦中文| 99精品一区二区| 久久综合九色综合97婷婷 | 宅男在线国产精品| 日韩专区在线视频| 欧美tk丨vk视频| 国产成人精品www牛牛影视| 中文字幕av免费专区久久| 99免费精品在线| 亚洲午夜日本在线观看| 欧美精品1区2区3区| 精品一区二区av| 国产精品色呦呦| 91福利视频网站| 日本不卡高清视频| 久久久久久久网| 99精品久久99久久久久| 亚洲小说欧美激情另类| 日韩欧美不卡在线观看视频| 国产福利不卡视频| 亚洲少妇30p| 51精品秘密在线观看| 国产精品中文字幕日韩精品 | 日韩欧美国产综合在线一区二区三区| 久久电影国产免费久久电影| 国产欧美日韩激情| 色久综合一二码| 蜜臂av日日欢夜夜爽一区| 亚洲国产精品高清| 欧美日韩久久一区| 狠狠色丁香久久婷婷综合丁香| 国产精品久久看| 欧美乱妇23p| 丰满放荡岳乱妇91ww| 亚洲国产成人高清精品| 亚洲精品在线观| 日本韩国欧美在线| 久久国产免费看| 亚洲欧美电影院| 精品国产亚洲在线| 91久久精品日日躁夜夜躁欧美| 免费观看在线综合色| 亚洲女同一区二区| 精品国产伦一区二区三区观看方式| www.色精品| 久久精品国产精品青草| 亚洲欧美日韩一区二区| 精品久久国产97色综合| 欧美综合一区二区三区| 国产精品中文欧美| 视频一区二区三区中文字幕| 国产精品成人一区二区艾草 | 亚洲精品一区二区三区蜜桃下载| 色综合网色综合| 国内精品国产成人国产三级粉色 | 成人一区二区三区| 奇米影视一区二区三区| 日韩理论电影院| 久久网站热最新地址| 欧美日韩视频在线观看一区二区三区| 国产成人福利片| 久久国内精品自在自线400部| 亚洲乱码精品一二三四区日韩在线| 久久婷婷国产综合精品青草| 在线播放/欧美激情| 91网页版在线| 成人免费视频视频在线观看免费| 日本中文字幕一区二区视频| 亚洲乱码中文字幕| 国产精品第五页| 久久精品视频免费观看| 欧美成人a∨高清免费观看| 欧美日韩激情在线| 色天天综合色天天久久| 不卡影院免费观看| 国产成人综合自拍| 热久久免费视频| 天堂成人国产精品一区| 亚洲一本大道在线| 亚洲精品成人在线| 亚洲欧美日韩一区| 亚洲三级免费观看| 亚洲欧美另类图片小说| 中文字幕中文乱码欧美一区二区| 欧美国产成人精品|