本文主要是介绍蓝牙网络封装协议(BNEP),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
BNEP(Bluetooth Network Encapsulation Protocol)提供传输控制和通过标准网络协议(如TCP,IPv4等)的数据包处理。BNEP是基于L2CAP接口实现的,BNEP定义了最小L2CAP MTU为1691字节。
1. BNEP的服务能力
BNEP提供的方法
bnep_init
bnep_packet_handler
bnep_can_send_packet_now
bnep_request_can_send_now_event
bnep_send
bnep_set_net_type_filter
bnep_set_multicast_filter
bnep_set_required_security_level
bnep_connect
bnep_disconnect
bnep_register_service
bnep_unregister_service
bnep_deinit
2. BNEP消息接收
通过bnep_register_packet_handler注册BNEP事件处理函数
3. 访问远端BNEP服务
连接远端设备需要知道他的UUID(可以通过SDP查询PAN Profile的属性获取UUID)。根据UUID,应用可以创建连接(bnep_connect),然后会收到BNEP_EVENT_CHANNEL_OPENED消息以确定连接成果还是失败。
连接成功后就可以收到标准网络包。发送标准网络包和所有发送一样都需要先确认是否能发送(bnep_can_send_packet_now),等到可以发送的时候调用(bnep_send)。
BNEP支持两种包过滤方式:bnep_set_net_type_filter和bnep_set_multicast_filter。
4. 提供BNEP服务
调用bnep_register_service注册服务(设置服务UUID和最大包大小)。通过监听BNEP_EVENT_INCOMING_CONNECTION事件以接受或者拒绝连接建立。
这篇关于蓝牙网络封装协议(BNEP)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!