資源描述:
《java自制手機(jī)聯(lián)網(wǎng)游戲》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、Java自制手機(jī)聯(lián)網(wǎng)游戲[錄入者:admin
2、?時(shí)間:2006-04-1809:51:35
3、作者:未知
4、?來源:未知
5、點(diǎn)擊數(shù):238][上一篇][下一篇]本文介紹了一個(gè)可以在手機(jī)上運(yùn)行的聯(lián)網(wǎng)游戲程序。通過這個(gè)程序,無論在何地,只要手機(jī)能夠上網(wǎng)就可以和Internet上的朋友聯(lián)網(wǎng)游戲。下面對(duì)程序的一些細(xì)節(jié)做一簡要介紹,希望能給從事Java開發(fā)的技術(shù)人員一些啟示。J2ME簡介J2ME(Java2MicroEdition)是Java2的一個(gè)組成部分,它與J2SE、J2EE并稱。根據(jù)Sun的定義:J2ME是一種高
6、度優(yōu)化的Java運(yùn)行環(huán)境,主要針對(duì)消費(fèi)類電子設(shè)備的,例如蜂窩電話和可視電話、數(shù)字機(jī)頂盒、汽車導(dǎo)航系統(tǒng)等等。J2ME技術(shù)在1999年的JavaOneDeveloperConference大會(huì)上正式推出,它將Java語言的與平臺(tái)無關(guān)的特性移植到小型電子設(shè)備上,允許移動(dòng)無線設(shè)備之間共享應(yīng)用程序。J2ME的構(gòu)架J2ME的構(gòu)架如圖1、圖2所示。圖1J2ME的構(gòu)架1圖2J2ME的構(gòu)架2程序運(yùn)行的環(huán)境客戶端即為手機(jī)(需支持J2ME的手機(jī),例如motorola388)用戶,編程環(huán)境是Windows2000server+M
7、otoJ2SDK+JDK1.3.1+MSSQLserver2000,服務(wù)器端為Windows2000server+JDK1.3.1。J2ME編程流程以MotoJ2SDK的開發(fā)過程為例,其流程如下所示:圖3J2ME編程流程程序簡介服務(wù)器端代碼的編寫客戶端和服務(wù)器端采用Socket連接。服務(wù)器端需要時(shí)刻監(jiān)聽客戶的請(qǐng)求(如圖4),一旦有客戶需求,它就需要馬上響應(yīng)(如圖5),并做出相應(yīng)的處理,然后將結(jié)果返回給客戶,客戶顯示服務(wù)器處理結(jié)果(如圖10)。圖4服務(wù)器監(jiān)聽8000端口圖5服務(wù)器接受到請(qǐng)求并響應(yīng)請(qǐng)求服務(wù)器端
8、程序代碼如下:try{gameServergServer=newgameServer();//創(chuàng)建一個(gè)主類實(shí)例gServer.newServerSocket(gServer.port);//監(jiān)聽gServer.port端口while(true)//時(shí)刻等待客戶端連接。{gServer.con=gServer.server.accept();//一旦有客戶的請(qǐng)求,則接收客戶請(qǐng)求。multiRequestcThread=newmultiRequest(gServer.gSocket);//為處理客戶端請(qǐng)求建立
9、線程。cThread.start();//啟動(dòng)線程處理客戶端請(qǐng)求。}}catch(IOExceptione)//捕獲異常。{System.out.println(“Creatingsocketerror!!!”);System.exit(1);}以下為multiRequest類的部分代碼:classmultiRequestextendsThread{privateSocketrSocket;privateDataInputStreamis;privateDataOutputStreamos;Strings
10、trReceive=null;StringstrWhichService=null;PrivateintType;publicmultiRequest(Sockets)throwsIOException//構(gòu)造函數(shù){rSocket=s;inType=0;is=newDataInputStream(rSocket.getInputStream());//建立輸入輸出流。os=newDataOutputStream(rSocket.getOutputStream());}publicvoidrun(){try
11、{?strReceive=in.readUTF();?strWhichService=strReceive.substring(0,2);//分離出用戶向服務(wù)器發(fā)送子串的前兩個(gè)字符,這個(gè)字符標(biāo)志著用戶請(qǐng)求的服務(wù)種類。?if(strWhichService.equals(“/r”))intType=1;//請(qǐng)求注冊(cè)服務(wù)。?elseif(strWhichService.equals(“/s”)intType=2;//請(qǐng)求查詢分?jǐn)?shù)服務(wù)。?elseif(strWhichService.equals(“/5”)in
12、tType=3;//請(qǐng)求五子棋服務(wù)。……//請(qǐng)求其它服務(wù)(略)?switch(intType)?{?case1:newUser();break;?case2:findByGradeByUserID();break;?case3:playWuzi();break;?default0:displayError();break;?}}catch(IOExceptione){}finally{?try{?rSocket.close()