新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Windows Mobile的無線通信系統(tǒng)的研究與實(shí)現(xiàn)

        基于Windows Mobile的無線通信系統(tǒng)的研究與實(shí)現(xiàn)

        作者: 時(shí)間:2009-06-18 來源:網(wǎng)絡(luò) 收藏

        其次,由于沿用了微軟操作的界面,界面和操作都和電腦上的十分接近,對(duì)于使用者來說十分熟悉又上手。
        第三,針對(duì)中國用戶而言,中文操作已經(jīng)比較成熟。目前,多普達(dá)、摩托羅拉、三星等都已經(jīng)生產(chǎn)了針對(duì)該,并且從市場(chǎng)的發(fā)展趨勢(shì)來看, 將是主流。
        因此,在本次系統(tǒng)的設(shè)計(jì)中,終端采用了Windows 。
        3.2 Java在Windows 中的應(yīng)用
        Java語言分為三個(gè)版本:J2SE,J2EE,。其中版本是適用于智能無線設(shè)備和小型計(jì)算設(shè)備的J2SE的簡化版,它能夠適應(yīng)這些設(shè)備微型、移動(dòng)和無線的特點(diǎn)。
        對(duì)于安裝了Windows Mobile的智能手機(jī)來說,根據(jù)不同品牌、不同型號(hào)的智能手機(jī)來看,在運(yùn)行Java程序上也有所不同。對(duì)于不直接支持Java的智能手機(jī)來說,就需要借助第三方的Java虛擬機(jī)來運(yùn)行程序,常見的Java虛擬機(jī)有JMM和DMIDP2等。而對(duì)于支持Java擴(kuò)展的智能手機(jī)來說,只要將編寫好的程序打包后,就能在手機(jī)上運(yùn)行。本設(shè)計(jì)選擇的智能手機(jī)是多普達(dá)S1,它本身是支持Java的,因此不需要另外尋找Java虛擬機(jī)來運(yùn)行J2ME程序,只需要下載一個(gè)RESCO資源管理器,然后將要運(yùn)行的程序?qū)?yīng)的工程(包括jad文件)進(jìn)行打包,下載至智能手機(jī)中。最后打開RESCO資源管理器,找到所要運(yùn)行的Java程序,點(diǎn)擊其中的jar文件就可以運(yùn)行了。
        4 系統(tǒng)的具體
        4.1 程序的
        由于需要接受和處理的數(shù)據(jù)量較大,并且是運(yùn)行在計(jì)算機(jī)上的,所以,的程序是用J2EE編寫的。
        智能手機(jī)是通過設(shè)置專線APN來連接服務(wù)器的,服務(wù)器通過繼承Thread類創(chuàng)建線程ServerImpl其功能,并通過生成固定端口的服務(wù)器Socket來接收終端的請(qǐng)求,實(shí)時(shí)偵聽,對(duì)來自于終端的數(shù)據(jù)進(jìn)行相應(yīng)處理,完成任務(wù)后,用close()關(guān)閉套接字,最后關(guān)閉服務(wù)器退出。
        服務(wù)器的初始化程序?yàn)椋?
        private void initServer(){
        try{
        receiveMessages=new Vector();
        //創(chuàng)建存放接收消息數(shù)組對(duì)象
        sendMessages=new Vector();
        //創(chuàng)建存放發(fā)送消息數(shù)組對(duì)象
        sender=new SendImpl(); //生成SendImpl類的對(duì)象
        receiver=new ReceiveImpl();
        //生成ReceiveImpl類的對(duì)象
        listener=new ListenImpl();
        clients=new Vector();
        serverSocket=new ServerSocket(8000);
        //生成服務(wù)器端口
        listener.setListenSocket(clients);
        //實(shí)現(xiàn)對(duì)的偵聽
        listener.setServerSocket(serverSocket);
        //設(shè)置服務(wù)器套接字
        sender.setSockets(clients);
        receiver.setSockets(clients);
        sender.setMessages(sendMessages);
        receiver.setMessages(receiveMessages);
        //設(shè)置消息對(duì)象
        }catch(BindException b){
        System.out.println(Server 已經(jīng)啟動(dòng));
        System.exit(0);//結(jié)束程序
        }
        }
        4.2 的程序?qū)崿F(xiàn)
        在創(chuàng)建J2ME程序之前,首先要對(duì)J2ME進(jìn)行配置。針對(duì)智能手機(jī)的特點(diǎn),應(yīng)當(dāng)選擇的是CLDC(連接有限設(shè)備)和MIDP1.0的配置。
        4.2.1 連接程序的實(shí)現(xiàn)
        程序的主題部分中,與服務(wù)器的連接過程是關(guān)鍵。程序代碼如下:
        private boolean connect() {
        try {
        System.out.println(連接到服務(wù)器);
        connect=(SocketConnection)Connector.open(socket://localhost:8000);
        //與服務(wù)器建立連接
        System.out.println(此終端的地址為:+adrthis);
        in = connect.openInputStream();
        //輸入數(shù)據(jù)
        out = connect.openOutputStream();
        //輸出數(shù)據(jù)
        return true;
        } catch (Exception e) {
        //拋出異常
        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 镇宁| 鄂尔多斯市| 芒康县| 武穴市| 长岭县| 樟树市| 隆昌县| 民权县| 兖州市| 枣庄市| 丽水市| 墨江| 康马县| 古田县| 峨边| 从化市| 轮台县| 福建省| 乌拉特前旗| 楚雄市| 宁武县| 枣庄市| 岗巴县| 克拉玛依市| 全椒县| 上蔡县| 都江堰市| 古浪县| 吉林市| 佳木斯市| 唐河县| 青州市| 遂川县| 宜黄县| 正阳县| 平湖市| 洛浦县| 贡觉县| 永顺县| 土默特右旗| 固安县|