6

我有两个安卓设备。一个充当服务器,另一个充当客户端。客户端连接到服务器并请求一个文件——这是在客户端的一个线程和服务器上的一个线程中完成的,这样两者都可以继续做他们想做的事。

客户端然后尝试再次连接到服务器以请求另一个文件。现在我java.io.IOException: Device or resource busy在尝试连接时得到一个(socket.connect())。是因为蓝牙(在 Android 上)只允许两个设备之间的一个通道吗?(如果它是另一个设备,它会工作,但如果它是相同的,它不会?)请注意,两次尝试都是使用相同的服务名称和 UUID 进行的。

即使错误特定于我的代码,我也想知道是否是这种情况。

系统: android 2.2.1 与bluecove 蓝牙库通信。

4

2 回答 2

6

绝对不是相同的 UUID(通用唯一标识符)。

参考资料取自这里

也许不止一个。您可以以 Server/Client 样式连接多台设备,您可以尝试将其中一台设备设置为服务器,并在另一台设备上启动多个客户端。我的第一个猜测是启动多个客户端线程,但您可能必须找到一种方法来更改每个客户端的 MAC 地址。

在这里您可以找到有关如何更改您的 mac 地址的另一个讨论,但仅适用于有根设备。对于非根目录,我找不到其他任何东西。不知道如何以编程方式执行此操作,但它可能会给您一个开始。

这里有一个关于在服务器中同时连接多个客户端的讨论。我从这个问题到那里。(我想这可能是你最近的镜头)

在这里,您将讨论对等网络。

于 2012-11-14T15:15:05.203 回答
1

AFAIK,在蓝牙连接的情况下,无法进行多重连接。蓝牙是连接 API 默认情况下是同步的,因此一次只能连接一个。所以你不能执行多个连接。

但是,也可以通过另一种方式,例如建立一个连接,对其执行 2 秒操作,然后创建另一个连接并执行 2 秒操作,就像在正常的多任务操作系统中发生的那样。

于 2012-03-23T04:40:55.273 回答