freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java聊天室系統(tǒng)的設(shè)計與實現(xiàn)-wenkub

2022-08-25 10:14:31 本頁面
 

【正文】 名度提供了方便 [2]。2.服務(wù)器端能夠正確的啟動,并且時刻監(jiān)視客戶端,保持與客戶端的連接。大型網(wǎng)站可以通過聊天室來提高自身的知名度,增加的訪問流量。目前,Java 技術(shù)除了沿著 J2SE,J2EE,J2ME 三種技術(shù)為主脈絡(luò)迅速發(fā)展外,還密切關(guān)注 Inter 環(huán)境下各種新型信息技術(shù)的發(fā)展,并能夠迅速與這些新技術(shù)融合,積極支持這些新技術(shù)應(yīng)用的開發(fā) [1]。通過 Socket 的數(shù)據(jù)是原始字節(jié)流信息,通信雙方必須根據(jù)約定的協(xié)議對數(shù)據(jù)進行處理與解釋 [15]。無連接方式中,通信雙方不存在一個連接過程,一次網(wǎng)絡(luò) I/O 以一個數(shù)據(jù)報形式進行,而且每次網(wǎng)絡(luò) I/O 可以和不同主機的不同進程進行。只要向 Socket 的輸出流寫,一個進程就可以通過網(wǎng)絡(luò)連接向其他進程發(fā)送數(shù)據(jù);同樣,通過讀 Socket 的輸入流,就可以讀取傳輸來的數(shù)據(jù) [9]。JBuilder 作為業(yè)界領(lǐng)先的 Java 開發(fā)工具,在集成了 Tomcat 并支持WebLogic 的同時,其套裝版更是集成了 DreamweaverUltraDev,Rational Rose 等產(chǎn)品,JBuilder5 提供了可視化的集成開發(fā)工具,支持開發(fā)人員向?qū)O大地簡化了開發(fā)人員的工作,使開發(fā)更為快捷,方便 [12]。任何 Java 編寫的程序都可以在 JBuilder 上運行、調(diào)試和工作 [3]??蛻暨M程包含邏輯和提供用戶接口,服務(wù)進程充當(dāng)一個管理共享資源的軟件引擎,這些共享資源可以是數(shù)據(jù)庫,打印機,調(diào)制解調(diào)器和處理機等。無論是水平伸縮還是垂直伸縮都有很出色的表現(xiàn)。在本論文中,我們這樣描述 C/S,網(wǎng)絡(luò)上的一臺計算機向網(wǎng)絡(luò)上的另外一臺計算機請求一個進程或數(shù)據(jù),如圖 1 所示。這個過程如圖 2 所示。下面我們來看看在 Java 里對 Socket 的運行過程實現(xiàn)。然后,服務(wù)器繼續(xù)監(jiān)聽 ServerSocket,處理新的客戶機連接。一個執(zhí)行流是由 CPU 運行程序代碼并操縱程序的數(shù)據(jù)所形成的。(1)一個虛擬的 CPU。程序中的線程都是 Thread 的實例。Sql Server 2022 可運行在 windows 98/NT/2022/XP 等多種操作系統(tǒng)下 [10]。3.查詢分析器查詢分析器是運行、測試用戶的 Transactsql 語句、批處理和腳本的場所。 第 3 章 系統(tǒng)需求分析 系統(tǒng)任務(wù)描述本系統(tǒng)是采用 Java 基于 C/S 開發(fā)的聊天室。此時,所有的客戶端都將失去和服務(wù)器端的連接,從而,用戶所有的聊天信息發(fā)送將不成功。如果在運行過程中,服務(wù)器斷開則系統(tǒng)會有提示。兩類界面根據(jù)系統(tǒng)使用者的角色不同,登錄界面也有所不同。用戶進入到聊天大廳中可以聊天,查看服務(wù)器狀態(tài)。(7)顯著提高工作效率,減少人力、物力資源的投入。情況 1:管理員啟動服務(wù)器,管理員界面將出現(xiàn)用戶連接信息和用戶的聊天信息,用戶在登錄后可以進入到聊天界面中。用戶的聊天信息可以在自己和其他用戶的界面上顯示。包括用戶的用戶名、登錄密碼、真實姓名、電話、傳真、所屬地區(qū)。這使程序設(shè)計更加簡便,同時減少了出錯的可能。在 Java 中,如果不創(chuàng)建新類就無法創(chuàng)建程序, Java 程序在運行時必須先創(chuàng)建一個類的實例,然后才能提交運行。在多線程機制中,不同的線程處理不同的任務(wù),他們之間互不干涉,不會由于一處等待影響其他部分,這樣容易實現(xiàn)網(wǎng)絡(luò)上的實時交互操作。從開發(fā)環(huán)境來看 ,JBuilder5 是一組全面高效率工具,使用 Java 編程語言創(chuàng)建可伸縮的,高性能的和具有不依賴于平臺性能的應(yīng)用程序。雖然對 Java 的網(wǎng)絡(luò)編程不是很熟悉,但是通過到圖書館查閱書籍和網(wǎng)上收集資料,現(xiàn)在對 Java 網(wǎng)絡(luò)編程有了一定的了解??傮w設(shè)計包括子系統(tǒng)的劃分和模塊設(shè)計,詳細設(shè)計包括各模塊的詳細描述、輸入輸出設(shè)計等。聊天室設(shè)計圖如圖 10 所示。對服務(wù)器端來說,Socket 是可見的,服務(wù)器通過用戶名操作 Socket,進而回應(yīng)客戶端的請求。首先,管理員登錄是指管理員通過輸入用戶名和密碼進入到管理員界面,即系統(tǒng)的服務(wù)器端。聊天室模塊是指系統(tǒng)聊天室所具有的基本功能,如發(fā)送、接收信息,查看當(dāng)前和服務(wù)器連接狀態(tài),顯示發(fā)送和接收的信息。如果在數(shù)據(jù)庫中沒有相同信息,則系統(tǒng)提示錯誤,并返回登錄界面。用戶登錄模塊流程圖如圖 14 所示:下面對用戶登錄程序流程圖做簡要敘述。可以對聊天室程序流程圖做這樣的簡要敘述:用戶在登錄界面中輸入用戶名和密碼進入到聊天室中。(()++())。 }catch(Exception e){ display(服務(wù)器已關(guān)閉!)。} } catch(IOException e){display(無法監(jiān)聽!)。if(checkName(c)){activeConnects++。 break。ipAdd=new String(())。StringBuffer info=new StringBuffer(INFO:)。address=()。}()。 (label1)。 服務(wù)器轉(zhuǎn)發(fā)信息public void run(){ try{ while(true){ for(int i=0。 ClientName=(String)(i)。 broadcastInfor=ClientName++string。 }catch(InterruptedException ex){} } }catch(Exception e){} }}首先,服務(wù)器端得到每個連接上的客戶端信息棧,讀取每個連接線程信息棧并把信息發(fā)送出去。 String constr=”當(dāng)前在線人數(shù)為+ activeConnects”。i++){ Connect c=(Connect)(i)。圖 16 管理員登錄界面進入到服務(wù)器端后啟動服務(wù)器。圖 18 系統(tǒng)客戶端若在運行過程中有用戶退出客戶端,則服務(wù)器端會有該用戶已退出的提示,并且當(dāng)前在線人數(shù)會自動減 1,在此為 user2 退出。import .*。 TextArea textArea。//默認端口號 Thread chatAcceptThread。//記錄連接的線程 ClientsInfor。 } ServerListen()。 button1=new Button(退出)。 (button1)。 (sPanel,)。 }public void processMsg(String str){// (str)。 } processMsg(Server listening on port:+DEFAULT_PORT)。//啟動接受連接的線程 ()。 try{ while(true){ Socket ClientSock=()。 i++。} }catch(IOException e){ processMsg(())。 } }public static void main(String[] args){ ChatRoomServer chat=new ChatRoomServer()。 ChatRoomServer chatFrame。//public CommunicateThread(Socket Sock,ChatRoomServer cFrame,int index){ ClientSock=Sock。 try{ in=new BufferedReader(new InputStreamReader(()))。 return。 if((Client exit!)){ writeInformation(infor)。 try{ (100)。 ()。} } }public void writeInformation(String infor){//寫信息棧 (infor)。 }catch(Exception e){。//信息棧 ClientMsg。//information in inforStack String ClientName。 chatClients=。k()。i()。//客戶名 //讀取每個連接線程的信息棧并把信息發(fā)送出去 for(int j=0。 broadcast(broadcastInfor)。 public ChatFrame_WindowAdapter(ChatRoomServer chatFrame){ =chatFrame。import .*。 TextField textField1,textField2。 // PrintWriter out。 //create Thread to Read information from Server Thread readThread。 } } public static void main(String[] args){//main method ChatRoomClient c=new ChatRoomClient()。 textField1=new TextField(input Server address here!)。 panel2=new Panel()。 } })。 (textField1)。 //textField2:for input message。 (button2)。 (panel1,)。 if(sock!=null){//connection successed processMsg(Connect successfully!)。 processMsg(Connect failed!)。 ()。 } public void processMsg(String msg){//客戶端處理消息 (msg)。 while(isTrue){ try{ msg=()。 } (1000)。 try{//服務(wù)器退出關(guān)閉連接和相關(guān)的 流 ()。 ()。 ()。 }public void keyPressed(KeyEvent e){//輸入的是 enter,開始連接! int j=()。 } public void keyPressed(KeyEvent e){//鍵擊 Enter 鍵,發(fā)送信息! int j=()。 } public void windowClosing(WindowEvent e){//exit program ()。 } }}//窗口關(guān)閉事件適配器class ChatFrame_WindowAdapter extends { ChatRoomClient chatFrame。 } }}//文本筐 textField2 的鍵擊事件適配器class textField2_KeyAdapter extends { ChatRoomClient chatFrame。 } }}//文本筐 textField1 的鍵擊事件適配器class textField1_KeyAdapter extends { ChatRoomClient chatFrame。 try{//close IOstream ()。 ()。 }catch(InterruptedException ei){ processMsg(())。 stopRun()。 }public void run(){ String msg。 }private void button2_actionPerformed(ActionEvent e){//發(fā)送按鈕 sendInformation()。 ()。 out=new PrintWriter(())。 (panel2,)。//frame is registered to WindowListener (new BorderLayout())。 (label1)。//panel2 //press button2: 發(fā)送 to sen
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1