資源描述:
《java網(wǎng)絡(luò)聊天室課程設(shè)計說明書(含源程序)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、課程設(shè)計操作系統(tǒng)課程設(shè)計報告18課程設(shè)計目錄一.設(shè)計要求和目的………………………………………3二.背景知識…………………………………………………………4三.客戶端設(shè)計………………………………………………………5四.客戶端主要代碼…………………………………………………6五.設(shè)計體會…………………………………………………………918課程設(shè)計摘要隨著網(wǎng)絡(luò)信息時代的來臨,Internet應(yīng)用越來越廣泛人們越來越習(xí)慣于在網(wǎng)上獲取和交流信息。據(jù)調(diào)查顯示,80%以上的人上網(wǎng)都會打開聊天工具來聊天,而幾乎每一個年輕人都會去聊天。使用網(wǎng)上聊天已經(jīng)成為現(xiàn)代年輕人一種新的交往方式
2、。聊天室更適合于陌生人之間進行較為主觀、感興化的討論。所以有大部分的人會進入聊天室聊天它會給人一個完全自由的聊天世界。因此我們聯(lián)系所學(xué)的操作系統(tǒng)、數(shù)據(jù)庫和MFC知識決定做一個簡易的聊天系統(tǒng)。一、設(shè)計要求和目的此課題是實現(xiàn)一個即時通信系統(tǒng)完成1:進程間通信、并發(fā)(同步/互斥)、文件讀寫2:內(nèi)存管理、Dll、Windows消息機制、IO。課題任務(wù)分工:客戶端子系統(tǒng):在客戶端系統(tǒng)的功能實現(xiàn)上,可以分為以下幾個部分:[1]進程信息的輸入系統(tǒng)把用戶進程要求發(fā)送的信息由鍵盤輸入從文件讀取。這部分功能是客戶端子系統(tǒng)的基本部分,這個功能是以后各個部分的基礎(chǔ)。系統(tǒng)要求做到即能
3、夠從其它子系統(tǒng)中共享一部分信息[2]進程信息的存儲:將進程的信息存儲到客戶端系統(tǒng)中,以及將發(fā)送的信息保存在文件中,以備以后進程之間通信確認(rèn)以及查詢。[3]通信數(shù)據(jù)的傳遞及接收:將客戶所發(fā)送的信息由客戶端由網(wǎng)絡(luò)傳到服務(wù)器端上,并且接受航服務(wù)器返回的接收方發(fā)送的信息,然后存儲起來。18課程設(shè)計二.背景知識SOCKETSocket可以看成在兩個程序進行通訊連接中的一個端點,是連接應(yīng)用程序和網(wǎng)絡(luò)驅(qū)動程序的橋梁,Socket在應(yīng)用程序中創(chuàng)建,通過綁定與網(wǎng)絡(luò)驅(qū)動建立關(guān)系。此后,應(yīng)用程序送給Socket的數(shù)據(jù),由Socket交網(wǎng)絡(luò)驅(qū)動程序向網(wǎng)絡(luò)上發(fā)送出去。計算機從網(wǎng)絡(luò)上收到
4、與該Socket綁定IP地址和端口號相關(guān)的數(shù)據(jù)后,由網(wǎng)絡(luò)驅(qū)動程序交給Socket,應(yīng)用程序便可從該Socket中提取接收到得數(shù)據(jù),網(wǎng)絡(luò)應(yīng)用程序就是這樣通過Socket進行數(shù)據(jù)的發(fā)送與接收的(1)創(chuàng)建Socket;(2)打開連接到Socket的輸入/出流;(3)按照一定的協(xié)議對Socket進行讀/寫操作;18課程設(shè)計(4)關(guān)閉Socket.IO技術(shù)阻塞模式可能造成阻塞的函數(shù)有:connect()、accept()、讀寫函數(shù)C/S兩端通過Socket機制進行連接(1)客戶端的編程流程:a創(chuàng)建Socket對象,向Server的監(jiān)聽端口請求;b通過向新Socket中讀
5、寫數(shù)據(jù)與Server端通信;c關(guān)閉Socket,結(jié)束與Server端;(2)服務(wù)器端的編程流程:1打開ServerSocket,創(chuàng)建一個服務(wù)器型套接字和一個普通套接字,服務(wù)器型套接字在指定端口為客戶端請求的Socket服務(wù);2等待來自客戶端的Client端的請求;3接收Client端的請求,用返回的Socket建立連接;4通過向Socket中讀寫數(shù)據(jù)來與Client端通信;5關(guān)閉Socket,結(jié)束與當(dāng)前Client端的通信;6關(guān)閉SerketSocket對象結(jié)束監(jiān)聽服務(wù)。二.客戶端設(shè)計客戶端主要完成建立連接、消息輸入、消息發(fā)送、消息存儲功能。功能含義如下:1.
6、建立連接:建立一個ServerSocket連接,不斷偵聽是否有服務(wù)端連接或者斷開連接。2.消息輸入:根據(jù)用戶輸入的消息,將消息顯示在屏幕面板上。3.消息發(fā)送:把用戶輸入的消息作為字符串通過Socket端口發(fā)送到服務(wù)器。4.消息存儲:把用戶輸入的消息存儲到data.txt文件中,以便用戶以后查閱聊天記錄??蛻舳嗽O(shè)計如下:1.界面設(shè)計2.連接設(shè)計3.接收信息設(shè)計4.用戶信息設(shè)計5.幫助設(shè)計客戶端用戶設(shè)計的IP地址和端口號連接到相應(yīng)的服務(wù)器,通過接收用戶輸入的消息,然后通過所監(jiān)聽的端口把消息發(fā)送到服務(wù)端,由服務(wù)端把消息發(fā)送到指定的用戶18課程設(shè)計用戶連接服務(wù)器1客戶
7、端請求連接客戶端通過connect()請求連接,填寫端口號以及IP地址,填寫自己的信息。2服務(wù)器端響應(yīng)服務(wù)器端的監(jiān)聽器監(jiān)聽到客戶端的連接請求后,檢測后允許客戶端連接到服務(wù)器。3給客戶端返回信息連接成功后服務(wù)器返回給客戶端連接成功的信息,并且給所有的用戶發(fā)送用戶登錄信息。4關(guān)閉Socket連接當(dāng)以上的程序都正常運行后,需要關(guān)閉Socket連接,否則將會浪費服務(wù)器與客戶端之間的資源。5用戶退出5.1接收退出信息當(dāng)用戶退出時,客戶端將會用基于Socket的對象輸出流發(fā)送給服務(wù)器退出對象。5.2在線列表中刪除用戶用戶退出后應(yīng)該把用戶從在線列表中刪除,否則用戶退出用戶還
8、在在線列表中,那么該用戶下次將會無法登