⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 btserver.java

📁 J2ME程序设计实例教程的源码
💻 JAVA
字号:
import javax.bluetooth.*;
import javax.microedition.io.*;
import java.io.*;

/**
 * 该类用于启动蓝牙设备,注册蓝牙服务,等待客户端的连接。
 */
public class BTServer implements Runnable {
    private static final String uuidString = "00112233445566778899AABBCCDDEEFF";
    private GobangMIDlet midlet;    //控制器
    private StreamConnectionNotifier service;   //服务
    
    //构造方法,创建一个蓝牙服务器
    public BTServer(GobangMIDlet midlet) {
        this.midlet = midlet;
    }
    
    //启动服务
    public void startService() {
        Thread t = new Thread(this);
        t.start();
    }
    
    //服务启动线程执行体
    public void run() {
        UUID uuid = new UUID(uuidString, false);
        try {
            //获取蓝牙设备,并使设备可以被发现。
            LocalDevice device = LocalDevice.getLocalDevice();
            device.setDiscoverable(DiscoveryAgent.GIAC);
            
            //使用SPP(串口连接简表)打开一个FRCOMM链接
            service = (StreamConnectionNotifier)
                        Connector.open("btspp://localhost:" + uuid.toString() + ";name=Gobang Server");
            
            //注册服务,等待客户连接。acceptAndOpen()方法将阻塞当前线程。
            //当有客户端连接时,acceptAndOpen()方法将返回一个StreamConnection对象。
            StreamConnection conn = service.acceptAndOpen();
            close();    //获得一个连接后关闭服务
            
            //开始对弈。
            midlet.startPlay(new BTConnection(midlet,conn));
        }
        catch(BluetoothStateException bse) {
            //midlet.showAlert(bse.toString());
        }
        catch(IOException ioe) {
            //midlet.showAlert(ioe.toString());
        }
    }
    
    //关闭服务
    public void close() {
        try {
            if(service != null) {
                service.close();
                service = null;
            }
        }
        catch(IOException ioe) {
            //
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -