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

📄 irobexserverthread.java

📁 人民邮电出版社的《J2ME手机开发入门》全部源代码
💻 JAVA
字号:
/*
 * IRObexServer.java
 *
 * Created on 2006年1月3日, 上午4:12
 *
 */
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.microedition.io.Connector;
import javax.obex.HeaderSet;
import javax.obex.Operation;    
import javax.obex.ResponseCodes;
import javax.obex.ServerRequestHandler;
import javax.obex.SessionNotifier;

/**
 *
 * @author Liu Bin
 */
public class IRObexServerThread  extends Thread {
    private IRObex parent = null;
    private SessionNotifier session=null;
    private Handler handler= new Handler();
    private boolean stopFlag=false;
    
    /** Creates a new instance of IRObexServer */
    public IRObexServerThread(IRObex s) {
        parent=s;
    }
    
    public void run() {
        String url = "irdaobex://localhost";
        stopFlag=false;
        
        try{
            session = (SessionNotifier) Connector.open(url);
            parent.debug("接收:打开连接");
            
            while (!stopFlag) {
                //开始监听客户端的连接
                session.acceptAndOpen(handler);
                sleep(100);
            }
        } catch(Exception e){
            parent.debug("监听时发生异常:"+e.toString() );
        }
    }
    
    //关闭服务器
    public void stop() {
        parent.debug("关闭服务线程...");
        stopFlag=true;
        try{
            if(session!=null) {
                session.close();
                session=null;
            }
        }catch(Exception e){
            parent.debug("关闭线程时异常:" + e.toString());
        }
    }
    
    class Handler extends ServerRequestHandler {
        public Handler() {
        }
        
        public int onConnect(HeaderSet request, HeaderSet reply) {
            parent.debug("服务器:OBEX会话已经建立");
            return ResponseCodes.OBEX_HTTP_OK;
        }
        public void onDisconnect(HeaderSet req, HeaderSet resp) {
            parent.debug("服务器:OBEX会话已经断开");
        }
        
        public int onPut(Operation op) {
            parent.debug("服务器:onPut");
            try {
                java.io.InputStream is = op.openInputStream();
                int size = (int)op.getLength();
                parent.debug("接收数据:size=" + size + "; name="
                        + op.getReceivedHeaders().getHeader(HeaderSet.NAME) +
                        "; type=" + op.getType());

                if (size>0) {
                    byte b[] = new byte[size];
                    is.read(b);
                    parent.debug("接收数据:" + new String(b));
                }
                is.close();
            } catch (Exception e) {
                parent.debug("onPut:" + e.toString());
            }
            return ResponseCodes.OBEX_HTTP_OK;
        }
        
        public int onGet(Operation op) {
            parent.debug("服务器:onGet");
            return ResponseCodes.OBEX_HTTP_OK;
        }
    }
}

⌨️ 快捷键说明

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