gpt4 book ai didi

java - 蓝牙在Java中同时充当客户端/服务器

转载 作者:行者123 更新时间:2023-11-30 11:57:05 24 4
gpt4 key购买 nike

我正在尝试创建一个蓝牙应用程序,它将同时监听传入连接(作为服务器)并使用 Java 和 BlueCove 寻找可用连接(作为客户端)。前提是两个蓝牙设备(例如智能手机)只要在传输范围内就可以自动发现彼此并开始某种文件交换或其他协作(这是机会网络的实验)。

我有一个在其自己的线程中运行的基本蓝牙客户端和一个在其自己的线程中运行的基本蓝牙服务器,我试图让它们同时工作。这已经成功了一半,但是,无论出于何种原因,一台设备总是最终接收到传入的连接并且永远找不到其他设备,并且一台设备最终找到其他连接但从未接收到它们(两台机器都运行相同的代码,具有相同的蓝牙加密狗 - 一台机器在 Windows XP 中,另一台机器在 Windows 7 中)。到目前为止,我只在两台设备上尝试过。

我收到异常(exception)情况,例如:

“java.io.IOException: 无法查询远程设备”

“java.io.IOException:名称查找错误;[10108] 未知此类服务。无法在指定的 namespace 中找到该服务。”

“连接失败;[10051] 尝试对无法访问的网络进行套接字操作。”

两个线程都必须调用 LocalDeviceStreamConnection,所以我需要同步线程对这些资源的访问,还是线程可以同时访问这些资源?我可以锁定这些对象,还是需要循环线程,以便客户端在服务器监听连接时 hibernate ,反之亦然(我试图避免只循环它们,因为蓝牙中的设备发现顺序是如此很慢,客户端线程会让服务器等待很多时间)?

我对多线程没有经验,仍在学习蓝牙,所以如果有人有提示或信息,我将不胜感激。

最佳答案

radio 硬件的功能似乎各不相同。正如您所发现的,有些似乎只真正支持一个连接……所以再买一个功能更强大的,但我不知道怎么知道哪个……:-(

关于java - 蓝牙在Java中同时充当客户端/服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4038414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com