java - Android——为一个连接打开多个套接字(输入和输出流)

标签 java android sockets bluetooth communication

我可以通过蓝牙成功将我的 Nexus One Android 手机连接到另一部蓝牙 Android 手机。我可以使用输入和输出流进行连接并编写我的请求并读取它们的响应。我的应用程序使用实时数据进行处理。我想知道有没有办法在不同的套接字(有点像专用套接字)上打开两个输入/输出流进行通信?如果是的话我怎样才能做到这一点?任何指示都会有帮助......

mmSocket.connect();

公共(public)无效连接() 自:API 级别 5 尝试连接到远程设备。

此方法将阻塞,直到建立连接或连接失败。如果此方法返回且没有异常,则此套接字现在已连接。

在设备发现过程中,不应尝试创建与远程蓝牙设备的新连接。设备发现是蓝牙适配器上的一个重量级过程,会显着减慢设备连接速度。使用cancelDiscovery() 取消正在进行的发现。发现不是由 Activity 管理,而是作为系统服务运行,因此应用程序应该始终调用 cancelDiscovery(),即使它没有直接请求发现,只是为了确定。

现在我的问题是:我如何使用两个套接字进行连接...因为上面的函数使用套接字进行连接...并且在连接后它会断开另一个套接字的任何其他尝试???

最佳答案

这当然是可能的,但我猜您对套接字使用了阻塞调用,因此您将需要多个线程来实时完成有用的工作。这也意味着如果线程要进行通信,则需要在线程之间进行一些同步。

坦率地说,你的问题有点模糊,所以我认为你不会得到任何好的答案,除非你稍微限定一下:你到底想做什么?为什么需要多个 socket ?第二个 socket 是做什么用的?

关于java - Android——为一个连接打开多个套接字(输入和输出流),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4943839/

相关文章:

java - 在Java中生成字母数字随机字符串

java - 多线程锁定 Java Swing GUI

android - 如何使用 dropbox、trello 或其他域创建 Web 服务

c - 使用原始套接字创建 IP、IGMP 数据包时,如何在这些数据包中填充十六进制值?

sockets - 去: socket library to get hostname

java - 我如何通过 -Xlint :deprecation or -Xlint:unchecked to Maven?

java - 如何通过扩展实例调用 BaseClass 方法

android - 如何在 EditText 上隐藏 Android 软键盘

java - 如何获取设备原始宽度和高度或实际屏幕宽度和高度?

java - 将套接字复制到另一个套接字,同一个套接字是否仍处于 Activity 状态? java