蓝牙 - 不使用服务器/客户端关系交换数据

时间:2013-10-02 06:42:01

标签: android networking bluetooth

我正在使用蓝牙制作应用程序,我意识到通过蓝牙在2个正在运行的设备之间交换数据非常简洁。 但是,据我所知,大多数蓝牙设备使用传统的服务器/客户端架构,因此信息交换是单方面的,即客户端从服务器请求数据,服务器发送它,但不是相反。

为了解决这个问题,我尝试让每个设备都有一个服务器实例以及一个客户端实例,这样客户端就可以在另一个设备中连接服务器。然而,这似乎并不高效,因为这需要2个通信渠道而不是一个。

然后我尝试去蓝牙网站,他们建议“角色转换”,也就是说,当服务器需要来自客户端的一些数据时,服务器使自己成为客户端而客户端成为服务器,因此角色是相反的。我也不太喜欢它,因为为什么2台设备不能同时扮演相同的角色并交换数据呢?那叫什么样的联系呢?

我没有网络经验,所以我的问题可能看起来很幼稚,但我想让某人指出答案,或者告诉我哪些信息/我缺少哪些教科书的章节,所以我可以维基。

1 个答案:

答案 0 :(得分:0)

角色切换会影响底层蓝牙拓扑:微微网中哪个设备是主设备。这可能会影响您的连接质量,但它不会以您想象的方式直接影响通信方向:它处于更低的水平。

是的,在Android蓝牙通信是使用套接字抽象完成的,套接字连接的设置是以客户端 - 服务器方式完成的。但是一旦连接套接字,双方都有一个蓝牙套接字实例,我很确定双方都可以获得输出流并启动通信。是什么让你想到的呢?