`
raymond.chen
  • 浏览: 1426539 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

通过蓝牙发送消息:PC作为服务端

 
阅读更多

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());

 

分享到:
评论

相关推荐

    经典蓝牙+ble蓝牙(低功耗蓝牙)客户端\服务端开发

    3. **BluetoothSocket**:负责创建与蓝牙设备的连接,通过它来实现数据的发送和接收。 4. **InputStream/OutputStream**:连接建立后,可以通过这两个流对象进行数据的读写操作。 5. **BroadcastReceiver**:监听...

    java实现windows蓝牙与android设备通信

    关于Android端的实现,通常会使用Android提供的`BluetoothAdapter`和`BluetoothSocket`类来建立客户端,搜索并连接到Windows上的蓝牙服务端,然后同样通过输入/输出流进行通信。在Android的资源列表中,你可以找到...

    基于蓝牙的PC与Android端通讯DEMO

    1. BlueCove库在PC端作为蓝牙服务端的角色,提供蓝牙连接和数据交换功能。 2. Android的BluetoothAdapter和BluetoothSocket用于客户端的蓝牙设备发现和连接建立。 3. 多线程编程,分别处理服务端的连接监听和客户端...

    websockt 服务接收

    服务器端可以设置WebSocket服务来处理这些实时通信,PC端应用则作为客户端,通过WebSocket连接发送或接收数据。这样的设计使得数据传输高效且实时,非常适合监控或控制远程设备的场景。 总结来说,WebSocket协议在...

    android PC通信

    在“电脑作为服务端,手机作为客服端”的模式下,PC通常会运行一个服务器程序,监听特定的网络端口,等待来自Android手机的连接请求。而Android设备则扮演客户端的角色,发起HTTP请求与服务端进行交互。这种通信方式...

    嵌入式系统与PC机之间的音频通信

    在音频通信的场景中,嵌入式系统可能作为音源(如麦克风输入)或播放器(如扬声器输出),而PC作为接收端或发送端,实现音频数据的捕获、处理和播放。 1. **硬件接口**:在物理层面上,嵌入式系统与PC之间需要一个...

    第10章嵌入式Linux综合项目实例.ppt

    系统功能框图:本系统基于客户/服务器结构,ARM2410S嵌入式开发板作为电梯服务端,PC机为客户端。客户端在Linux下开发,客户端和服务端之间通过Socket通信。 功能简介: 1. 视频图像采集结构:根据Video4Linux标准...

    电子设计大赛获奖作品 — STM32实现的实时三导联心电监控系统( 硬件电路、 STM32单片机程序、 安卓程序、PC上位机程序、设计报告)-电路方案

    个人的心电信号通过手机发送到PC服务端,PC服务端允许多用户连接,并且可以对各个用户数据进行保存和分析,实现对多人心电信号的长期监控。 功能 前端处理电路对原始心电信号进行放大和滤波; STM32系统能采集心电...

    TCP服务器端管理软件.rar

    总的来说,这个资源包提供了一套完整的解决方案,用于通过PC上位机实现对ESP8266和ESP32设备的TCP通信和多用户管理。开发者和爱好者可以通过这个工具,更便捷地远程监控和控制他们的智能硬件项目,提高工作效率。在...

    21春南开大学《移动计算理论与技术》在线作业参考答案.docx

    - WAP(Wireless Application Protocol)定义了三种消息类型,分别对应不同服务要求:无结果返回的不可靠发送、无结果返回的可靠发送、有结果返回的可靠发送。 5. **操作系统与无线接入**: - 常见的手机操作系统...

Global site tag (gtag.js) - Google Analytics