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

📄 bluetoothconnection.java

📁 这是我们学校教的j2me程序开发实例从入门到精通自带关盘的源代码
💻 JAVA
字号:
package game.bluetooth;

import javax.microedition.io.*;
import java.io.*;

public class BluetoothConnection
{

    private StreamConnection streamConnection;

    private InputStream inputStream;

    private OutputStream outputStream;

    private String localName;     // 此连接的本地设备名

    private String remoteName;    // 此连接的远端设备名
    private String url; // url字符串,用来建立连接用

    public BluetoothConnection(StreamConnection con, String ln, String rn)
        throws IOException
    {
        localName = ln;
        
        remoteName = rn;

        url = "";
        
        streamConnection = con;

        openStreams();
    }

    public BluetoothConnection(String urlStrings, String ln, String rn)
        throws IOException
    {
        localName = ln;
        
        remoteName = rn;

        url = urlStrings;

        connect();
    } 

    private void connect()
        throws IOException
    {    
        streamConnection = (StreamConnection) Connector.open( url );
        
        openStreams();
    }

    private void openStreams()
        throws IOException
    {
        inputStream = streamConnection.openInputStream();
        
        outputStream = streamConnection.openOutputStream();
    }

    synchronized public void close()
    {
        try
        {
            outputStream.close();
        }
        catch(IOException e)
        { }

        try
        {
            inputStream.close();
        }
        catch(IOException e)
        { }

        try
        {
            if(streamConnection != null)
            {
                streamConnection.close();
                streamConnection = null;
            }
        }
        catch( IOException e )
        { }
    }

    public InputStream getInputStream()
    {
        return inputStream;
    }

    public OutputStream getOutputStream()
    {
        return outputStream;
    }

    public String getLocalName()
    {
        return localName;
    }

    public String getRemoteName()
    {
        return remoteName;
    }
    
    protected void setRemoteName( String rn )
    {
    	//设置远端连接的名称
        remoteName = rn;
    }
    
    protected void setLocalName( String ln)
    {
    	localName = ln;
    }

    /** 
     * 传送一个字符串到远端设备
     * 必须首先传送字符串长度
     */
    public void writeString(String s)
        throws IOException
    {
       
        byte[] bytes = s.getBytes();
       
        outputStream.write(bytes.length); 

        outputStream.write(bytes);

        outputStream.flush();
    }

    /** 
     * 读取远端设备发送来的字符串
     * 必须首先读入字符串长度
     */
    public String readString()
        throws IOException
    {
        int length = inputStream.read();
     
        byte[] bytes = new byte[length];
        
        read(bytes, length);

        return new String(bytes);
    }

    /**
     * 写一个整数
     */
    public void writeInt( int v )
    throws IOException
    {
        outputStream.write( (v & 0xFF) );
        outputStream.write( ((v>>8) & 0xFF) );
        outputStream.write( ((v>>16) & 0xFF) );
        outputStream.write( ((v>>24) & 0xFF) );
    }

    /**
     * 读一个整数
     */
    public int readInt()
    throws IOException
    {
        int res;

        res = inputStream.read();
        res += inputStream.read()<<8;
        res += inputStream.read()<<16;
        res += inputStream.read()<<24;
        return res;
    }

    public boolean isClosed()
    {
        if( streamConnection == null )
        {
        	//己断开
            return true;
        }
        else
        {
            //仍然连接
            return false;
        }
    }

    /** 
     * 读取bytes到数组中,直到读入len个byte。
     */
    public void read( byte[] arr, int len )
    throws IOException
    {
        int offs, count;

        offs = 0;
        while( len > 0 )
        {
            // 仍有需要读入的byte
            count = inputStream.read( arr, offs, len );
            len -= count;
            offs += count;
        }
    }
}

⌨️ 快捷键说明

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