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

正文內(nèi)容

基于java套接字的實現(xiàn)多點互動通訊系統(tǒng)(編輯修改稿)

2024-12-13 22:01 本頁面
 

【文章內(nèi)容簡介】 檢查用戶的輸入數(shù)據(jù),顯示應(yīng)用的輸出數(shù)據(jù)。為了使用戶能直接地進(jìn)行操作,客戶層需要使用圖形用戶接口。 [6]若通訊用戶變更,系統(tǒng)只需要改寫顯示控制和數(shù)據(jù)檢查程序就可以了,而不會影響其他兩層。 服務(wù)層又叫做功能層,相當(dāng)于應(yīng)用的本體,它是將具體的業(yè)務(wù)處理邏輯編入程序中。例如,用戶需要檢查數(shù)據(jù),系統(tǒng)設(shè)法將有關(guān)檢索要求的信息一次性地傳送給功能層;而用戶登錄 后,聊天登錄信息是由功能層處理過的檢索結(jié)果數(shù)據(jù),它也是一次性傳送給表示層的。在應(yīng)用設(shè)計中,必須避免在表示層和功能層之間進(jìn)行多次的數(shù)據(jù)交換,這就需要盡可能進(jìn)行一次性的業(yè)務(wù)處理,達(dá)到優(yōu)化整體設(shè)計的目的。 圖 1 二層 C/S 結(jié)構(gòu)示意圖 功能設(shè)計 該多點互動通訊按如下過程完成通訊: (1)用戶向服務(wù)器注冊; (2)用戶注冊之后,向服務(wù)器發(fā)送消息; (3)服務(wù)器再把消息發(fā)送給相應(yīng)的用戶。 根據(jù)以上描述,該系統(tǒng)功能模塊圖如圖 2 所示 圖 2 多點互動通訊功能模塊圖 服務(wù)器端功能設(shè)計 在服務(wù)器端的 程序具有以下的功能實現(xiàn): (1)開啟服務(wù)器程序,進(jìn)行監(jiān)聽,接收客戶端連接。 (2)接收消息、分析消息、轉(zhuǎn)發(fā)消息。 (3)關(guān)閉服務(wù)器端的程序,并向所有已連客戶端發(fā)送服務(wù)器端程序已關(guān)閉消息。 客戶端功能設(shè)計 在客戶端的程序必須具有以下的功能實現(xiàn): (1)用戶注冊。 (2)請求連接服務(wù)器,并把此用戶登錄請求發(fā)給服務(wù)器端。 (3)隨時可以向服務(wù)器發(fā)送消息。 (4)隨時可以接收服務(wù)器端轉(zhuǎn)發(fā)過來的消息。 (5)響應(yīng)服務(wù)器端程序已關(guān)閉消息。 界面設(shè)計 服務(wù)器端功能設(shè)計 在服務(wù) 器端的界面設(shè)計實現(xiàn):有兩個按鈕,分別是開啟服務(wù)和停止服務(wù),把這兩個按鈕放入一個面板中,然后把此面板放入到窗體中。此界面能實現(xiàn)服務(wù)器端的服務(wù)開啟和停止的功能。 客戶器界面設(shè)計 在客戶端設(shè)計了五個界面:登入界面、注冊界面、好友界面、聊天界面、修改密碼界面。 (1)登錄界面設(shè)計實現(xiàn):在登錄界面中有兩個輸入框,能實現(xiàn)用戶賬號和密碼的輸入,并且密碼輸入是不可見的。還有三個按鈕:登錄、取消、注冊向?qū)А? (2)注冊界面設(shè)計實現(xiàn):當(dāng)點擊登錄界面登錄按鈕時,進(jìn)入注冊界面。注冊界面能實現(xiàn)用戶輸入申請的賬號,設(shè)置 密碼。還設(shè)計有注冊和返回按鈕來方便使用者的操作。 (3)好友界面設(shè)計實現(xiàn):登錄成功后,進(jìn)入好友界面。好友界面有:我的好友、陌生人、黑名單三個按鈕。當(dāng)點擊我的好友時,能實現(xiàn)我的好友列表,當(dāng)點擊陌生人時,能實現(xiàn)陌生人列表。 (4)聊天界面設(shè)計實現(xiàn):當(dāng)雙擊列表中某好友時,跳出與此好友聊天的界面。聊天界面包括:聊天內(nèi)容顯示、輸入聊天信息、發(fā)送聊天信息。 (5)修改密碼界面設(shè)計實現(xiàn):當(dāng)在登錄界面點擊修改密碼時,進(jìn)入修改密碼界面。修改密碼界面能實現(xiàn)輸入賬號、原有密碼和需要修改的密碼。還設(shè)計有修改密碼和返回按鈕來方 便使用者的操作。 6詳細(xì)設(shè)計 服務(wù)器端詳細(xì)設(shè)計 界面設(shè)計 在 java 程序中,我們可以通過自己編寫的類繼承 JFrame 類的方法實現(xiàn)要創(chuàng)建的窗體。當(dāng)我們用到 JFrame 類,我們需要導(dǎo)入 .*和 .*。我們要在窗體內(nèi)加入一個裝有控制按鈕的面板 (JPanel)。關(guān)鍵代碼如下: jPanel_show=new JPanel()。 jButton_start=new JButton(。啟動服務(wù)器 。)。 (this)。 jButton_stop=new JButton(。關(guān)閉服務(wù)器 。)。 (this)。 (jButton_start)。 (jButton_stop)。 (jPanel_show)。 功能模塊的實現(xiàn) 本系統(tǒng)在 C/S 模式下進(jìn)行開發(fā),所以服務(wù)器端的程序設(shè)計至關(guān)重要。下面就服務(wù)器端功能進(jìn)行設(shè)計。 服務(wù)器端界面有 兩個按鈕,分別是 jButton_start 和 jButton_stop。當(dāng)點擊 jButton_start 時,跳出是否開啟服務(wù)器的對話框。點擊確定時顯示服務(wù)器啟動對話框,服務(wù)器啟動后通過 ServerSocket Serve_socket =new ServerSocket(9898)語句在服務(wù)器 9898 端口進(jìn)行監(jiān)聽操作。監(jiān)聽通過()語句返回一個連接客戶端的 Socket。關(guān)鍵代碼如下: Serve_socket = new ServerSocket()。 //有連接則返回此套接字的連接 . socket=()。 接收到客戶端 User 后判斷為登錄操作時,則通過 UserDao 類中的()方法判斷 MYSQL 數(shù)據(jù)庫中是否有此用戶,有則把 Message 的類型設(shè)為 ,然后通過 ()把此消息發(fā)給客戶端,并用 new SerConClientThread(socket)為此用戶開一個服務(wù)器端的線程為此用戶服務(wù),并加入到服務(wù)器線程類里面 去, SerConClientThread 類可以實 現(xiàn) 用 戶 消 息 接 收 、 消 息 分 析 、 消 息 轉(zhuǎn) 發(fā) , 通 過(())通知其它在線好友此用戶上線。沒有則把 Message 的 類 型 設(shè) 為 , 然 后 通 過()把此消息發(fā)給客戶端,并且關(guān)閉此 Socket。關(guān)鍵代碼如下: if(().equals(。userLogin。)) { if(().equals((()))) { //return Login suceess ()。 //返回給用戶一個登入成功的消息 (m)。 //這里就單開一個線程,讓該線程與該客戶端保持通信 . SerConClientThread Serve_thread=new SerConClientThread(socket)。 ((), Serve_thread)。 //啟動與該客戶端通信的線程 . ()。 // notify Other who online (())。 } else { //表明 Fail Login ()。 (m)。 //關(guān)閉 Socket ()。 } } 接收到客戶端 User 后判斷為注冊標(biāo)志時,則得到用戶要注冊的用戶賬號,通過 ()方法查找 MYSQL 數(shù)據(jù)庫中是否有此用戶賬號,有則把Massage 的類型設(shè)為注冊不成功標(biāo)志。通過 ()把此消息發(fā)給客戶端,發(fā)完后關(guān)閉在服務(wù)器端的此用戶連接的 Socket;沒有則在服務(wù)器端 User表中加入此用戶,然后把 Massage 的類型設(shè)為注冊 成功標(biāo)志,通過()把此消息發(fā)給客戶端,發(fā)完后關(guān)閉在服務(wù)器端的此用戶連接的 Socket。關(guān)鍵代碼如下: if(().equals(。userRegister。)) { if(((), (), ())) { (。registerSuccess。)。 } else (。registerFail。)。 (m)。 //寫入消息 ()。 }
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1