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

时间:2011-02-09 10:51:23

标签: java android sockets bluetooth communication

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

  

mmSocket.connect();

public void connect() 自:API等级5 尝试连接到远程设备。

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

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

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

1 个答案:

答案 0 :(得分:2)

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

你的问题坦率地说有点模糊,所以我认为你不会得到任何好的答案,除非你有一点资格:你究竟想做什么?为什么需要多个插座?什么是第二个插座?