前言

  本章内容是  android.bluetooth.BluetoothServerSocket,为Android蓝牙部分的章节翻译。服务器通讯套接字,与TCP ServerSocket类似。版本为 Android  2.3   r1,翻译来自中山大学的"Android Club SYSU",欢迎访问他们的WIKI:http://www.android-wiki.net,再次感谢"Android Club SYSU"!期待你一起参与Android API 的中文翻译,联系我 over140@gmail.com。

声明

  欢迎转载,但请保留文章原始出处:)

    Android Club SYSU:http://www.android-wiki.net

    博客园:http://www.cnblogs.com/

    Android中文翻译组:http://code.taobao.org/project/view/404/

正文

  一、结构

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)。

为了创建一个对准备好的新来的连接去进行监听BluetoothServerSocket类,使用 BluetoothAdapter.listenUsingRfcommWithServiceRecord()方法。然后调用accept()方法去监 听该链接的请求。在连接建立之前,该调用会被阻断,也就是说,它将返回一个BluetoothSocket类去管理该连接。每次获得该类之后,如果不再需 要接受连接,最好调用在BluetoothServerSocket类下的close()方法。关闭BluetoothServerSocket类不会关 闭这个已经返回的BluetoothSocket类。

BluetoothSocket类线程安全。特别的,close()方法总会马上放弃外界操作并关闭服务器端口。

注意:需要BLUETOOTH权限。

参见

BluetoothSocket

  三、公共方法    

public  BluetoothSocketaccept (int timeout)

 阻塞直到超时时间内的连接建立。

 在一个成功建立的连接上返回一个已连接的BluetoothSocket类。

 每当该调用返回的时候,它可以在此调用去接收以后新来的连接。

          close()方法可以用来放弃从另一线程来的调用。

参数

timeout    (译者注:阻塞超时时间)

返回值

已连接的 BluetoothSocket

异常

IOException     出现错误,比如该调用被放弃,或者超时。

           public BluetoothSocket accept ()

          阻塞直到一个连接已经建立。(译者注:默认超时时间设置为-1,见源码)

          在一个成功建立的连接上返回一个已连接的BluetoothSocket类。

  每当该调用返回的时候,它可以在此调用去接收以后新来的连接。

        close()方法可以用来放弃从另一线程来的调用。

返回值

已连接的 BluetoothSocket

异常

IOException     出现错误,比如该调用被放弃,或者超时。

public void close ()

    马上关闭端口,并释放所有相关的资源。

    在其他线程的该端口中引起阻塞,从而使系统马上抛出一个IO异常。

    关闭BluetoothServerSocket不会关闭接受自accept()的任意BluetoothSocket。

      异常

  IOException

最新文章

  1. MySQL字符串的‘123’转换为数字的123
  2. 收藏夹里的js
  3. 从高处理解android与服务器交互(看懂了做开发就会非常的容易)
  4. 转:android git开源项目列表
  5. JavaScript设计模式之构造函数模式
  6. 【JavaScript】深入分析JavaScript的关系运算和if语句
  7. 01.Editplus+Lua配置
  8. MFC--自定义消息
  9. PHP开源CRM-推荐几个
  10. RabbitMQ 消息确认与公平调度消费者
  11. Palette状态栏颜色提取,写的不错就分享了
  12. 2018-2019-2 20165316 《网络对抗技术》 Exp6 信息搜集与漏洞扫描
  13. Ansible--Ad-Hoc
  14. centos7下安装docker(24docker swarm 数据管理)
  15. 分布式协议学习笔记(三) Raft 选举自编写代码练习
  16. w命令 查看系统负载
  17. JVM调优常用参数
  18. Android 连续按两次back键退出系统
  19. 【代码审计】eduaskcms_v1.0.7前台存储型XSS漏洞分析
  20. zabbix项目实践

热门文章

  1. C++之继承和动态内存分配
  2. Struts2拦截器总结
  3. Java动态代理机制——JDK
  4. 百度ueditor富文本编辑器的使用
  5. nyoj 528 找球号(三)(哈希)
  6. openStack 王者归来之 trivial matters
  7. 第八届河南省赛C.最少换乘(最短路建图)
  8. 第七届河南省赛A.物资调度(dfs)
  9. Node.js笔记2
  10. w3c教程