亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? serverbox.java

?? 手機藍牙通訊
?? JAVA
字號:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package com.mir.bluetooth;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.util.Vector;import javax.bluetooth.DiscoveryAgent;import javax.bluetooth.LocalDevice;import javax.bluetooth.ServiceRecord;import javax.bluetooth.UUID;import javax.microedition.io.Connector;import javax.microedition.io.StreamConnection;import javax.microedition.io.StreamConnectionNotifier;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.CommandListener;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.TextBox;import javax.microedition.lcdui.TextField;/** * 服務端GUI * @author Jagie * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */public class ServerBox extends TextBox implements Runnable, CommandListener {    Command com_pub = new Command("開啟服務", Command.OK, 0);    Command com_cancel = new Command("終止服務", Command.CANCEL, 0);    Command com_back = new Command("返回", Command.BACK, 1);    LocalDevice localDevice;    StreamConnectionNotifier notifier;    ServiceRecord record;    boolean isClosed;    ClientProcessor processor;    StupidBTMIDlet midlet;    //響應服務的uuid    private static final UUID ECHO_SERVER_UUID = new UUID(            "F0E0D0C0B0A000908070605040302010", false);    public ServerBox(StupidBTMIDlet midlet) {        super(null, "", 500, TextField.ANY);        this.midlet = midlet;        this.addCommand(com_pub);        this.addCommand(com_back);        this.setCommandListener(this);    }    public void run() {        boolean isBTReady = false;        try {            localDevice = LocalDevice.getLocalDevice();            if (!localDevice.setDiscoverable(DiscoveryAgent.GIAC)) {                showInfo("無法設置設備發現模式");                return;            }            // prepare a URL to create a notifier            StringBuffer url = new StringBuffer("btspp://");            // indicate this is a server            url.append("localhost").append(':');            // add the UUID to identify this service            url.append(ECHO_SERVER_UUID.toString());            // add the name for our service            url.append(";name=Echo Server");            // request all of the client not to be authorized            // some devices fail on authorize=true            url.append(";authorize=false");            // create notifier now            notifier = (StreamConnectionNotifier) Connector                    .open(url.toString());            record = localDevice.getRecord(notifier);            // remember we've reached this point.            isBTReady = true;        } catch (Exception e) {            e.printStackTrace();        }        // nothing to do if no bluetooth available        if (isBTReady) {            showInfo("初始化成功,等待連接");            this.removeCommand(com_pub);            this.addCommand(com_cancel);        } else {            showInfo("初始化失敗,退出");            return;        }        // 生成服務端服務線程對象        processor = new ClientProcessor();        // ok, start accepting connections then        while (!isClosed) {            StreamConnection conn = null;            try {                conn = notifier.acceptAndOpen();            } catch (IOException e) {                // wrong client or interrupted - continue anyway                continue;            }            processor.addConnection(conn);        }    }    public void publish() {        isClosed = false;        this.setString(null);        new Thread(this).start();    }    public void cancelService() {        isClosed = true;        showInfo("服務終止");        this.removeCommand(com_cancel);        this.addCommand(com_pub);    }    /*     * (non-Javadoc)     *     * @see javax.microedition.lcdui.CommandListener#commandAction(javax.microedition.lcdui.Command,     *      javax.microedition.lcdui.Displayable)     */    public void commandAction(Command arg0, Displayable arg1) {        if (arg0 == com_pub) {            //發布service            publish();        } else if (arg0 == com_cancel) {            cancelService();        } else {            cancelService();            midlet.showMainMenu();        }    }    /**     * 內部類,服務端服務線程。     * @author Jagie     *     * TODO To change the template for this generated type comment go to     * Window - Preferences - Java - Code Style - Code Templates     */    private class ClientProcessor implements Runnable {        private Thread processorThread;        private Vector queue = new Vector();        private boolean isOk = true;        ClientProcessor() {            processorThread = new Thread(this);            processorThread.start();        }        public void run() {            while (!isClosed) {                synchronized (this) {                    if (queue.size() == 0) {                        try {                            //阻塞,直到有新客戶連接                            wait();                        } catch (InterruptedException e) {                        }                    }                }                //處理連接隊列                StreamConnection conn;                synchronized (this) {                    if (isClosed) {                        return;                    }                    conn = (StreamConnection) queue.firstElement();                    queue.removeElementAt(0);                    processConnection(conn);                }            }        }        /**         * 往連接隊列添加新連接,同時喚醒處理線程         * @param conn         */        void addConnection(StreamConnection conn) {            synchronized (this) {                queue.addElement(conn);                notify();            }        }    }    /**     * 從StreamConnection讀取輸入     * @param conn     * @return     */    private String readInputString(StreamConnection conn) {        String inputString = null;        try {            DataInputStream dis = conn.openDataInputStream();            inputString = dis.readUTF();            dis.close();        } catch (Exception e) {            e.printStackTrace();        }        return inputString;    }    /**     * debug     * @param s     */    private void showInfo(String s) {        StringBuffer sb = new StringBuffer(this.getString());        if (sb.length() > 0) {            sb.append("\n");        }        sb.append(s);        this.setString(sb.toString());    }    /**     * 處理客戶端連接     * @param conn     */    private void processConnection(StreamConnection conn) {        // 讀取輸入        String inputString = readInputString(conn);        //生成響應        String outputString = inputString.toUpperCase();        //輸出響應        sendOutputData(outputString, conn);        try {            conn.close();        } catch (IOException e) {        } // ignore        showInfo("客戶端輸入:" + inputString + ",已成功響應!");    }    /**     * 輸出響應     * @param outputData     * @param conn     */    private void sendOutputData(String outputData, StreamConnection conn) {        try {            DataOutputStream dos = conn.openDataOutputStream();            dos.writeUTF(outputData);            dos.close();        } catch (IOException e) {        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩专区一卡二卡| 欧美日韩精品专区| 欧美亚洲自拍偷拍| 国产欧美日韩综合| 日产国产欧美视频一区精品| 色综合久久久网| 国产视频不卡一区| 精品一区二区三区在线观看国产| 欧美综合亚洲图片综合区| 国产精品嫩草99a| 国产一区二区免费视频| 欧美一区欧美二区| 偷偷要91色婷婷| 欧美午夜精品一区二区蜜桃| 亚洲美女在线国产| 99国产精品久久久| 国产精品色在线| 国内不卡的二区三区中文字幕| 9191精品国产综合久久久久久| 亚洲人成人一区二区在线观看| 丁香婷婷综合激情五月色| 国产日韩欧美综合一区| 国产一区二区在线电影| 精品免费视频一区二区| 蜜臀av一区二区三区| 欧美一区二区三区人| 亚洲h精品动漫在线观看| 欧美亚洲愉拍一区二区| 亚洲一区二区在线播放相泽| 91福利资源站| 亚洲高清免费观看| 色婷婷一区二区三区四区| 国产精品国产三级国产普通话蜜臀 | 国产老肥熟一区二区三区| 欧美一区二区三区视频在线观看| 日韩av一区二区三区| 91麻豆精品国产91久久久使用方法 | 国产色综合一区| 国产.精品.日韩.另类.中文.在线.播放| 91精品国产欧美一区二区成人| 日韩影院免费视频| 日韩精品一区二区三区中文精品| 麻豆一区二区三| 久久色.com| k8久久久一区二区三区| 一区二区在线免费观看| 欧美日韩国产小视频在线观看| 首页国产丝袜综合| 精品日韩成人av| 国产**成人网毛片九色| 亚洲欧美区自拍先锋| 色av一区二区| 秋霞午夜鲁丝一区二区老狼| 久久精品一区四区| av电影在线不卡| 亚洲午夜日本在线观看| 日韩一级黄色片| 国产精品亚洲第一| 亚洲成在人线在线播放| 久久这里只有精品视频网| 国产不卡免费视频| 亚洲激情第一区| 精品国产91久久久久久久妲己 | 精品久久免费看| 成人黄色av电影| 亚洲超碰精品一区二区| 久久影视一区二区| 一本大道久久a久久精二百| 日本aⅴ免费视频一区二区三区 | 91精品国产色综合久久久蜜香臀| 久久99国产精品尤物| 成人欧美一区二区三区黑人麻豆| 欧美一三区三区四区免费在线看 | 日韩一卡二卡三卡| 99久久精品国产观看| 免费欧美日韩国产三级电影| 中国av一区二区三区| 欧美一区二区三区精品| 91无套直看片红桃| 国产一区二区在线影院| 视频在线在亚洲| 亚洲欧洲日韩在线| 精品国产3级a| 正在播放亚洲一区| 欧美亚洲尤物久久| 99re66热这里只有精品3直播 | 99精品视频在线观看| 精品在线亚洲视频| 丝袜美腿亚洲一区| 亚洲黄色小视频| 亚洲国产精品ⅴa在线观看| 日韩欧美中文一区二区| 欧美男男青年gay1069videost | 成人av影视在线观看| 极品美女销魂一区二区三区免费 | 日韩欧美亚洲另类制服综合在线 | 中文字幕一区二区三区不卡在线| 日韩欧美国产不卡| 3atv一区二区三区| 欧美日韩国产天堂| 欧美日韩激情一区二区| 在线免费不卡电影| 欧美在线一二三四区| 色狠狠色噜噜噜综合网| 91在线视频观看| 99久久夜色精品国产网站| 成人avav影音| 成人av在线播放网址| 成人黄色777网| 不卡大黄网站免费看| 成人性生交大片免费看视频在线| 国产乱人伦偷精品视频不卡| 久久99精品久久久久久久久久久久 | 在线成人午夜影院| 欧美亚洲精品一区| 欧美人与禽zozo性伦| 欧美三级电影网| 在线精品观看国产| 欧美日韩午夜影院| 91精品国产入口| 精品国产一区二区三区忘忧草| 欧美一区二区成人| 1区2区3区国产精品| 亚洲图片欧美激情| 亚洲欧美日韩国产综合| 亚洲成人动漫精品| 日韩高清欧美激情| 激情av综合网| 成人午夜电影久久影院| 91色婷婷久久久久合中文| 日本韩国精品在线| 5858s免费视频成人| 精品日韩一区二区| 国产精品色哟哟| 夜色激情一区二区| 日韩精品久久理论片| 国产资源精品在线观看| 成人av资源在线观看| 精品视频123区在线观看| 欧美xxxx在线观看| 国产精品美女久久久久久2018| 一区二区在线看| 青青草视频一区| 成人一区二区在线观看| 欧美日韩在线电影| 久久综合久色欧美综合狠狠| 中文字幕亚洲精品在线观看| 丝袜美腿高跟呻吟高潮一区| 国产99精品在线观看| 欧美这里有精品| 久久久美女毛片| 亚洲尤物在线视频观看| 国产一区 二区| 欧美最猛黑人xxxxx猛交| 2020国产精品| 亚洲一区在线免费观看| 国产激情精品久久久第一区二区 | 日韩美一区二区三区| 日本一区二区三区免费乱视频| 一区二区三区不卡视频| 韩国成人福利片在线播放| 色激情天天射综合网| 国产日韩高清在线| 夜夜爽夜夜爽精品视频| 国产精品66部| 欧美精品成人一区二区三区四区| 国产精品视频一二三区| 加勒比av一区二区| 欧美精品免费视频| 亚洲精品日韩一| youjizz久久| 久久久综合激的五月天| 亚洲成人三级小说| 91丨porny丨蝌蚪视频| 久久久99久久精品欧美| 日韩中文字幕一区二区三区| 色综合一区二区| 国产精品国模大尺度视频| 韩国精品久久久| 日韩免费看的电影| 午夜精品福利在线| 欧美日韩国产在线观看| 亚洲精选视频免费看| 粉嫩av亚洲一区二区图片| 精品乱人伦小说| 精品在线你懂的| 日韩午夜在线播放| 欧美a级一区二区| 欧美一区三区二区| 日本视频免费一区| 欧美日韩性生活| 午夜欧美一区二区三区在线播放| 色哟哟亚洲精品| 亚洲精品国产精品乱码不99 | 亚洲色图欧美激情| 99久久99精品久久久久久 | 日本强好片久久久久久aaa| 欧美日韩久久久| 亚洲福利国产精品| 91麻豆精品国产91久久久更新时间|