您的位置:首页 > 其它

蓝牙socket方面知识

2017-03-31 21:53 471 查看
1、socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。蓝牙同样可以使用Socket来实现客户端和服务器程序。

socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

2、蓝牙模块中Socket通信

BluetoothSocket

蓝牙socket的接口(类似于TCP/IP socket接口)。应用程序通过InputStream或者OutputStream与其他蓝牙设备交换数据的连接点。BluetoothServerSocket

开放的服务器socket,监听进入的连接请求(类似于TCP/IP的ServerSocket)。为了连接两个Android设备,其中一个 必须打开一个server socket。当一个远程蓝牙设备发出一个连接请求并被接受时,BluetoothServerSocket将返回一个已连接的 BluetoothSocket。

 
3、   服务器端 : 使用BluetoothServerSocket对象可以创建一个BluetoothSocket对象, 调用BluetoothServerSocket的accept()方法就可以获取该对象;
 客户端 : 调用BluetoothDevice的createRfcommSocketToServiceRecord()可以获取该对象;

在服务器端BluetoothServerSocket进行accept()阻塞, 在客户端BluetoothSocket调用connect()连接服务器, 如果连接成功, 服务器端的accept()方法就会返回BluetoothSocket对象, 同时客户端的BluetoothSocket也成功连接服务器, 此时服务器端和客户端的BluetoothSocket对象就可以获取输入输出流, 对数据进行操作;

常见的连接 : 最常见的BluetoothSocket连接是RFCOMM连接, 这是一个面向连接的数据交互, 先建立连接, 在进行数据交互, 类似于打电话.(面向连接对应无连接, 打电话时面向连接的; 网络上发送数据是无连接的).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: