server端代码:
工程需要引入bluecove-2.1.0.jar包文件
public class Server { private LocalDevice localDevice = null; private StreamConnectionNotifier notifier; public void start() throws Exception { localDevice = LocalDevice.getLocalDevice(); localDevice.setDiscoverable(DiscoveryAgent.GIAC); String url="btspp://localhost:04c6093b00001000800000805f9b34fb"; notifier = (StreamConnectionNotifier)Connector.open(url); while(true){ try{ StreamConnection connection = notifier.acceptAndOpen(); Thread thread = new Thread(new ConnectionThread(connection)); thread.setDaemon(true); thread.start(); }catch(Exception ex){ ex.printStackTrace(); } } } public void stop(){ if(notifier != null){ try { notifier.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { Server server = null; try { server = new Server(); server.start(); } catch (Exception e) { e.printStackTrace(); } finally { if(server != null){ server.stop(); } } } }
ConnectionThread类代码:
public class ConnectionThread implements Runnable { private StreamConnection connection; private InputStream in; private OutputStream out; public ConnectionThread(StreamConnection connection){ this.connection = connection; } public void run() { try{ in = connection.openInputStream(); out = connection.openOutputStream(); byte[] buffer = new byte[128]; int len = -1; while(true){ if((len=in.read(buffer)) != -1){ String cmd = new String(buffer, 0, len, Charset.forName("UTF-8")); System.out.println(cmd); out.write("This message from server".getBytes()); out.flush(); } } }catch(Exception ex){ ex.printStackTrace(); } } }
Android client端关键代码:
String address = "10:2A:7D:BA:81:4A"; //蓝牙地址 UUID uuid = UUID.fromString("04c6093b-0000-1000-8000-00805f9b34fb"); BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); BluetoothDevice device = bluetoothAdapter.getRemoteDevice(address); BluetoothSocket socket = device.createRfcommSocketToServiceRecord(uuid); socket.connect(); socket.getOutputStream().write("this message from client".getBytes());
相关推荐
3. **BluetoothSocket**:负责创建与蓝牙设备的连接,通过它来实现数据的发送和接收。 4. **InputStream/OutputStream**:连接建立后,可以通过这两个流对象进行数据的读写操作。 5. **BroadcastReceiver**:监听...
关于Android端的实现,通常会使用Android提供的`BluetoothAdapter`和`BluetoothSocket`类来建立客户端,搜索并连接到Windows上的蓝牙服务端,然后同样通过输入/输出流进行通信。在Android的资源列表中,你可以找到...
这通常涉及到在手机和电脑的蓝牙设置中开启蓝牙功能,然后搜索并添加彼此作为可信任的设备。 2. **UUID匹配**:在蓝牙通信中,UUID(Universally Unique Identifier)是用于识别特定服务的唯一标识符。在PC服务端和...
1. BlueCove库在PC端作为蓝牙服务端的角色,提供蓝牙连接和数据交换功能。 2. Android的BluetoothAdapter和BluetoothSocket用于客户端的蓝牙设备发现和连接建立。 3. 多线程编程,分别处理服务端的连接监听和客户端...
服务器端可以设置WebSocket服务来处理这些实时通信,PC端应用则作为客户端,通过WebSocket连接发送或接收数据。这样的设计使得数据传输高效且实时,非常适合监控或控制远程设备的场景。 总结来说,WebSocket协议在...
在“电脑作为服务端,手机作为客服端”的模式下,PC通常会运行一个服务器程序,监听特定的网络端口,等待来自Android手机的连接请求。而Android设备则扮演客户端的角色,发起HTTP请求与服务端进行交互。这种通信方式...
在音频通信的场景中,嵌入式系统可能作为音源(如麦克风输入)或播放器(如扬声器输出),而PC作为接收端或发送端,实现音频数据的捕获、处理和播放。 1. **硬件接口**:在物理层面上,嵌入式系统与PC之间需要一个...
系统功能框图:本系统基于客户/服务器结构,ARM2410S嵌入式开发板作为电梯服务端,PC机为客户端。客户端在Linux下开发,客户端和服务端之间通过Socket通信。 功能简介: 1. 视频图像采集结构:根据Video4Linux标准...
个人的心电信号通过手机发送到PC服务端,PC服务端允许多用户连接,并且可以对各个用户数据进行保存和分析,实现对多人心电信号的长期监控。 功能 前端处理电路对原始心电信号进行放大和滤波; STM32系统能采集心电...
总的来说,这个资源包提供了一套完整的解决方案,用于通过PC上位机实现对ESP8266和ESP32设备的TCP通信和多用户管理。开发者和爱好者可以通过这个工具,更便捷地远程监控和控制他们的智能硬件项目,提高工作效率。在...
- WAP(Wireless Application Protocol)定义了三种消息类型,分别对应不同服务要求:无结果返回的不可靠发送、无结果返回的可靠发送、有结果返回的可靠发送。 5. **操作系统与无线接入**: - 常见的手机操作系统...
自2012年至2014年,物联网连续被Gartner评为年度十大策略性技术和趋势之一,预计到2020年,物联网设备数量将达到333亿个,其中包括智能手机、平板电脑和PC的总装置数约73亿台。 物联网的核心特征包括三个方面:全面...