Linux BlueZ 下 Inquiry的实现
前面讲了使用 ioctl发送HCI Command的方法。但HCI protocol还有一些Command,比如Inquiry等,他们则不需要使用ioctl来发送。blueZ 直接提供了支持,虽然他们的最终都是用同样办法实现的。
在应用程序中:
hci_inquiry(dev_id, length, num_rsp, NULL, &info, flags);
这样需要包含blueZ 头文件如下:
#include //BTPROTO_HCI
#include //struct hci_dev_info
#include //hci_devid()
#include //l2cap
#include //hidp
hci_inquiry()的实现在 bluez-lib-xxx/lib/src/hci.c中。
哈哈,发现其实最终也是使用:
ioctl(dd, HCIINQUIRY, (unsigned long) buf);
这样,其实就和上一篇对应起来了。所有HCI Command最终都使用ioctl来发送。
相关文档:
准备工作:
用到的perl 扩展组件(modules)在上篇贴出.( win32::odbc 模块
)下载组件后按照Readme文件安装倒响应目录.配置好相应的odbc数据源.
程序实现:
使用
use
Win32::ODBC;
语句包含应使用的模块是win32::odbc,写出数据库
连接字符串
$DSN = "DSN =
My DSN ......
在很多系统软件的开发中,需要使用一些系统的唯一性信息。所以,得到主机的CPUID、硬盘序列号及网卡的MAC地址,就成个一件很重要的应用。
本人经过一番google即自己的钻研,基本上实现了这几个功能。需要的准备知识有:
GCC的嵌入汇编,具体的GCC嵌入汇编知识,请参考相关手册
ioctl系统调用,具体的调用方法 ......
最近一个项目的系统用的是Solaris 10,虽然以前用的都是 Linux系统,但是Linux系统中的一些命令和Solaris系统是通用的,为了方便我现在列出部分,以后陆续更新。
1) 查看开放端口
Linux: netstat -atn
Solaris: netstat -P tcp -f inet -an
2) 查看网卡/网络状态
......