[android源码分析]sdp Server的启动分析

本文探讨了蓝牙启动过程中的关键组件——SDP Server。通过分析`init_server`函数,了解其如何进行初始化,包括建立L2CAP和UNIX Socket,服务于discovery和register client,以支持独立访问。
摘要由CSDN通过智能技术生成

SDP server是蓝牙启动过程中的一个非常重要部分。本文简单介绍一下这个函数的实现。

int start_sdp_server(uint16_t mtu, const char *did, uint32_t flags)
{
	//这里传入的flags是SDP_SERVER_COMPAT
//所以compat值是有效的,master应该是0
	int compat = flags & SDP_SERVER_COMPAT;
	int master = flags & SDP_SERVER_MASTER;
	GIOChannel *io;

	info("Starting SDP server");
	//初始化server,详细见2.3.4.1
	if (init_server(mtu, master, compat) < 0) {
		error("Server initialization failed");
		return -1;
	}
	//did就是传入的device id,也就是main_opts.deviceid,他是根据DeviceID这个值来设置的,根据我们的main.conf,他的值就是android:generic:1.5
	if (did && strlen(did) > 0) {
		const char *ptr = did;
		uint16_t vid = 0x0000, pid = 0x0000, ver = 0x0000;
		//vid=android
		//pid=generic
		//version=1.5
		vid = (uint16_t) strtol(ptr, NULL, 16);
		ptr = strchr(ptr, ':');
		if (ptr) {
			pid = (uint16_t) strtol(pt
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值