前言
本章内容是 android.bluetooth.BluetoothServerSocket,为Android蓝牙部分的章节翻译。服务器通讯套接字,与TCP ServerSocket类似。版本为 Android 2.3 r1,翻译来自中山大学的"Android Club SYSU",欢迎访问他们的WIKI:,再次感谢"Android Club SYSU"!期待你一起参与Android API 的中文翻译,联系我 over140@gmail.com。
声明
欢迎转载,但请保留文章原始出处:)
Android Club SYSU:
博客园:
Android中文翻译组:
正文
一、结构
public final class BluetoothServerSocket extends Object implements Closeable
java.lang.Object
android.bluetooth.BluetoothServerSocket
二、概述
一个蓝牙监听端口。
蓝牙端口监听接口和TCP端口类似:Socket和ServerSocket类。在服务器端,使用BluetoothServerSocket类来创建一个 监听服务端口。当一个连接被BluetoothServerSocket所接受,它会返回一个新的BluetoothSocket来管理该连接。在客户 端,使用一个单独的BluetoothSocket类去初始化一个外接连接和管理该连接。
最通常使用的蓝牙端口是RFCOMM,它是被Android API支持的类型。RFCOMM是一个面向连接,通过蓝牙模块进行的数据流传输方式,它也被称为串行端口规范(Serial Port Profile,SPP)。
为了创建一个对准备好的新来的连接去进行监听类,使用
方法。然后调用
方法去监 听该链接的请求。在连接建立之前,该调用会被阻断,也就是说,它将返回一个
类去管理该连接。每次获得该类之后,如果不再需 要接受连接,最好调用在
类下的
方法。关闭
类不会关 闭这个已经返回的
类。
类线程安全。特别的,
方法总会马上放弃外界操作并关闭服务器端口。
注意:需要权限。
参见
三、公共方法
public BluetoothSocketaccept (int timeout)
阻塞直到超时时间内的连接建立。
在一个成功建立的连接上返回一个已连接的BluetoothSocket类。
每当该调用返回的时候,它可以在此调用去接收以后新来的连接。
方法可以用来放弃从另一线程来的调用。
参数
timeout (译者注:阻塞超时时间)
返回值
已连接的 BluetoothSocket
异常
IOException 出现错误,比如该调用被放弃,或者超时。
public accept ()
阻塞直到一个连接已经建立。(译者注:默认超时时间设置为-1,见源码)
在一个成功建立的连接上返回一个已连接的BluetoothSocket类。
每当该调用返回的时候,它可以在此调用去接收以后新来的连接。
方法可以用来放弃从另一线程来的调用。
返回值
已连接的 BluetoothSocket
异常
IOException 出现错误,比如该调用被放弃,或者超时。
public void close ()
马上关闭端口,并释放所有相关的资源。
在其他线程的该端口中引起阻塞,从而使系统马上抛出一个IO异常。
关闭BluetoothServerSocket不会关闭接受自accept()的任意BluetoothSocket。
异常
IOException