0

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

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

然后我尝试去蓝牙网站,他们建议“角色切换”,即当服务器想要来自客户端的一些数据时,服务器将自己变为客户端,客户端变为服务器,因此角色颠倒了。我也不是很喜欢,为什么两台设备不能同时扮演同样的角色并交换数据呢?那这叫什么连接呢?

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

4

1 回答 1

0

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

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

于 2013-10-02T16:01:50.607 回答