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

正文內(nèi)容

基于socket的即時(shí)通訊軟畢業(yè)設(shè)計(jì)(編輯修改稿)

2024-12-29 16:04 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 能。列舉如下:(1) 支持多賬號(hào)。(2) 可以同時(shí)發(fā)送同一個(gè)消息給一個(gè)人,通過輸入對(duì)方信息。(3) 可以同時(shí)發(fā)送一個(gè)消息給所有人。(4) 即使用戶不在線,也能通過服務(wù)器發(fā)送離線消息。(5) 提供消息、聊天的歷史記錄,方便對(duì)信息的查看和管理。(6) 提供查看在線的人的功能。(7) 用戶上線通知。(8) 用戶下線更新(9) 有權(quán)限的人可以發(fā)系統(tǒng)廣播通知(10) 查看用戶信息(11) 更改個(gè)人信息(12) 開機(jī)啟動(dòng)設(shè)置(13) 主窗口總是浮在最上端(14) 速度快,占用資源少 系統(tǒng)功能模塊根據(jù)上述的需求分析,并針對(duì)個(gè)人所掌握的知識(shí)和自己畢業(yè)設(shè)計(jì)時(shí)間的限制,要做到面面俱到是不可能的,并考慮到作為局域網(wǎng)(校園網(wǎng))聊天工具,終端用戶數(shù)量較少,我設(shè)計(jì)的通訊軟件借鑒了、聊天室等即時(shí)聊天工具,聊天信息采用服務(wù)器轉(zhuǎn)發(fā)方式,只要當(dāng)前在線的用戶都可以接收到,當(dāng)然,也實(shí)現(xiàn)了兩人之間私聊的功能。包括服務(wù)器程序和客戶端程序,服務(wù)器包括聊天信息即時(shí)轉(zhuǎn)發(fā)、系統(tǒng)日志記錄、發(fā)送通知、以及數(shù)據(jù)庫的備份、還原、初始化??蛻舳司哂械顷?,注冊(cè),修改個(gè)人信息,聊天等功能。 系統(tǒng)功能需求圖 這個(gè)即時(shí)通訊軟件系統(tǒng)包括服務(wù)器端和客戶端,服務(wù)器端有聊天記錄、系統(tǒng)設(shè)置、發(fā)布通告、數(shù)據(jù)庫備份還原初始化、置頂?shù)墓δ埽蛻舳艘笥械顷?、注?cè)、聊天和修改查看個(gè)人信息的功能,系統(tǒng)功能的需求圖如下: 系統(tǒng)功能需求圖 開發(fā)方法介紹目前比較成熟的信息系統(tǒng)開發(fā)方法有:生命周期法、原型法、面向?qū)ο蠓ǖ?。生命周期法:把一個(gè)信息系統(tǒng)從其提出、分析、設(shè)計(jì)和使用,直到停止使用的整個(gè)生存期視為一個(gè)生命周期。整個(gè)生命周期劃分為五個(gè)主要工作階段:可行性分析階段、系統(tǒng)分析階段、系統(tǒng)設(shè)計(jì)階段、系統(tǒng)實(shí)施階段和系統(tǒng)運(yùn)行、維護(hù)與評(píng)價(jià)階段。通常采用結(jié)構(gòu)化系統(tǒng)分析和系統(tǒng)設(shè)計(jì)方法,自上而下分析、設(shè)計(jì)、強(qiáng)調(diào)開發(fā)過程的整體性和全局性;開發(fā)過程在時(shí)間上基本按階段進(jìn)行,任務(wù)明確;結(jié)合用戶需求進(jìn)行開發(fā);開發(fā)周期長(zhǎng),維護(hù)不方便。適用于開發(fā)需求較明確固定的信息系統(tǒng)。原型法:是系統(tǒng)開發(fā)者在初步了解用戶需求的基礎(chǔ)上,開發(fā)出能實(shí)現(xiàn)系統(tǒng)基本功能的一個(gè)原型,再根據(jù)用戶對(duì)原型使用與評(píng)價(jià)的意見,提出修改方案,修改完善原型,如此反復(fù)多次,直到得到用戶滿意的最終系統(tǒng)為止。開發(fā)過程以用戶為中心,開發(fā)周期短。適用于開發(fā)需求不夠明確或不斷變化的軟件。面向?qū)ο蠓ǎ阂灶?,類的繼承,聚集等概念描述客觀事物以及聯(lián)系。為管理信息系統(tǒng)的開發(fā)提供了全新的思路,面向?qū)ο蠓椒ㄒ詫?duì)象為中心。其特征主要有模塊性,繼承性和類比性,動(dòng)態(tài)連接性。其中原型法是近幾年發(fā)展起來的一種開發(fā)方法,該方法從一個(gè)初始信息要求的集合出發(fā),在發(fā)展中逐步完善信息系統(tǒng)。本即時(shí)通訊軟件采用的是原型法。使用原型法開發(fā)大體有以下幾個(gè)步驟:(1) 確定系統(tǒng)需求。其中包括系統(tǒng)的應(yīng)用范圍、系統(tǒng)開發(fā)的經(jīng)費(fèi)估算等。(2) 設(shè)計(jì)初始原型。包括確定需求和開發(fā)工作模型,例如屏幕格式、功能菜單、報(bào)表格式以及對(duì)關(guān)鍵數(shù)據(jù)和功能的說明等。(3) 對(duì)初始原型進(jìn)行需求迭代,不斷進(jìn)行修正或改進(jìn),直至得到一個(gè)用戶滿意的原型,從而終止原型迭代過程。(4) 如果需要,可寫出系統(tǒng)必要成分的嚴(yán)格、詳細(xì)的說明。(5) 原型效果考察??疾煊脩粜录尤氲男枨笮畔⒑徒M成成分的嚴(yán)格說明信息,看其對(duì)原型效果的影響,是否影響到原型的有效性,如果導(dǎo)致原型失敗,應(yīng)加以修正和改進(jìn)。原型法的生命周期提供了一種完整的、靈活的、近于動(dòng)態(tài)的需求定義技術(shù)。它綜合了所有提出的必要需求,建立原型就近似于預(yù)先需求的規(guī)格說明。對(duì)應(yīng)于原型的工作模型可以進(jìn)行必要的剪裁和組織,以便更接近目標(biāo)系統(tǒng)。它可以綜合用戶、領(lǐng)導(dǎo)和原型開發(fā)人員的各方需求[10]。 原型法工作流程圖 長(zhǎng)沙學(xué)院畢業(yè)設(shè)計(jì)(論文)第5章 總體設(shè)計(jì) 設(shè)計(jì)思想服務(wù)器端和客戶端需要分別設(shè)計(jì),除了主聊天界面外,還加上了登錄界面,以便管理。作為即時(shí)通訊軟件系統(tǒng),客戶端信息全部來自于服務(wù)器,服務(wù)器端能實(shí)時(shí)掌握所有客戶登錄、退出、對(duì)話情況,并能實(shí)時(shí)轉(zhuǎn)發(fā)、廣播給相應(yīng)客戶。由于服務(wù)器要和多個(gè)客戶聯(lián)系,所以在設(shè)計(jì)中采用了Winsock控件數(shù)組的形式,其中下標(biāo)為 0 的元素作為監(jiān)聽控件,當(dāng)有客戶登錄、退出或者相互間發(fā)送消息時(shí),能正確接收并作相應(yīng)處理,其余控件數(shù)組元素當(dāng)有客戶連接時(shí)自動(dòng)裝入??蛻舳酥恍枰粋€(gè) Winsock控件,應(yīng)具有隨時(shí)連接、斷開服務(wù)器的功能,也應(yīng)具有對(duì)接收到的信息做出正確分析、處理的能力。在整個(gè)系統(tǒng)設(shè)計(jì)過程中,對(duì)客戶端和服務(wù)器端的消息到達(dá)這一事件的設(shè)計(jì)和編碼是系統(tǒng)的關(guān)鍵。 關(guān)鍵通信技術(shù)-Winsock本系統(tǒng)的開發(fā)平臺(tái)是VB ,采用了面向網(wǎng)絡(luò)連接的Winsock控件。Winsock是不可見控件,,全稱為Microsoft Winsock Control,它能實(shí)現(xiàn)機(jī)器與機(jī)器間點(diǎn)對(duì)點(diǎn)的連接以及對(duì)話,使用時(shí)要將此控件調(diào)入工具箱。Winsock控件可以使用兩種協(xié)議:TCP協(xié)議和 UDP協(xié)議。使用TCP協(xié)議來實(shí)現(xiàn)服務(wù)器 N 客戶模式。UDP可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)無服務(wù)器通訊。TCP協(xié)議即數(shù)據(jù)傳輸協(xié)議,允許創(chuàng)建和維護(hù)與遠(yuǎn)程計(jì)算機(jī)的連接,使彼此可以進(jìn)行數(shù)據(jù)傳輸。利用 TCP協(xié)議通訊必須分別建立客戶應(yīng)用程序和服務(wù)器應(yīng)用程序。在創(chuàng)建客戶應(yīng)用程序時(shí),必須知道服務(wù)器名或其 IP地址(RemoteHost 屬性)及服務(wù)器進(jìn)行偵聽的端口(RemotePort屬性) ,然后調(diào)用 Connect 方法。創(chuàng)建服務(wù)器應(yīng)用程序時(shí) ,應(yīng)設(shè)置一個(gè)偵聽端口(LocalPort 屬性)并調(diào)用 listen 方法。當(dāng)客戶機(jī)需要連接時(shí)(connect),就會(huì)發(fā)生 ConnectionRequest 事件。為了完成連接,可以在 ConnectionRequest 事件中調(diào)用Accept 方法。建立連接后 ,任何一方計(jì)算機(jī)都可以發(fā)送、接收對(duì)方數(shù)據(jù)。如果要發(fā)送數(shù)據(jù),需調(diào)用 SendData 方法。當(dāng)接收到數(shù)據(jù)時(shí),會(huì)發(fā)生 DataArrival 事件,調(diào)用 DataArrival 事件中的 GetData方法就可以獲得對(duì)方傳送的數(shù)據(jù)[11]。Winsock控件屬性:Protocol∥值為sckTCPProtocol時(shí)使用TCP/ IP協(xié)議,sckUDPProtocol使用UDP協(xié)議RemoteHost ∥準(zhǔn)備連接遠(yuǎn)程機(jī)的 IP地址RemotePort ∥連接遠(yuǎn)程機(jī)的 IP端口號(hào)LocalPort  ∥本地機(jī) IP端口號(hào)Winsock控件方法:Connect   ∥申請(qǐng)連接遠(yuǎn)程機(jī)Listen   ∥設(shè)置監(jiān)聽Accept    ∥建立實(shí)際連接Senddata  ∥發(fā)送數(shù)據(jù)Getdata   ∥接收數(shù)據(jù)(用文本框接收時(shí)應(yīng)加上參數(shù)Vbstring)Close     ∥關(guān)閉連接Winsock控件事件:Connectionrequest ∥一方請(qǐng)求連接時(shí)另一方產(chǎn)生Connect ∥一方接受連接時(shí)另一方產(chǎn)生Close    ∥一方關(guān)閉連接時(shí)另一方產(chǎn)生DataArrival ∥一方發(fā)送數(shù)據(jù)另一方產(chǎn)生Error    ∥請(qǐng)求連接失敗時(shí)產(chǎn)生 第6章 詳細(xì)設(shè)計(jì) 數(shù)據(jù)庫設(shè)計(jì) 本系統(tǒng)采用的Access數(shù)據(jù)庫是Microsoft公司始于1994年發(fā)表的微機(jī)數(shù)據(jù)庫管理系統(tǒng)。決定采用ACCESS數(shù)據(jù)庫保存用戶的基本信息。采用文件和數(shù)據(jù)庫的方式存儲(chǔ)所有用戶登錄/退出記錄以及用戶的聊天信息。作為一種功能強(qiáng)大的MIS系統(tǒng)開發(fā)工具,它具有界面友好,易學(xué)易用,開發(fā)簡(jiǎn)單,接口靈活等特點(diǎn),是一個(gè)典型的新一代數(shù)據(jù)管理和信息系統(tǒng)開發(fā)工具。Access具有較獨(dú)特的優(yōu)勢(shì)提供了更強(qiáng)大的數(shù)據(jù)組織,用戶管理,查詢檢索、數(shù)據(jù)排序及數(shù)據(jù)打印等功能。在一個(gè)工作組級(jí)別的網(wǎng)絡(luò)環(huán)境中,使用Access開發(fā)的多用戶數(shù)據(jù)庫管理系統(tǒng)具有傳統(tǒng)的XBASE數(shù)據(jù)庫系統(tǒng)所無法比擬的客戶服(Client/Server)結(jié)構(gòu)和相應(yīng)的數(shù)據(jù)庫安全機(jī)制。 系統(tǒng)數(shù)據(jù)流程圖數(shù)據(jù)流圖(Data Flow Diagram,簡(jiǎn)稱DFD)是新系統(tǒng)邏輯模型的主要組成部分,它可以反映出系統(tǒng)的主要功能、系統(tǒng)與外部環(huán)境見的輸入輸出、系統(tǒng)內(nèi)部的處理、數(shù)據(jù)傳送、數(shù)據(jù)存儲(chǔ)等的情況。它的繪制依據(jù)是現(xiàn)行系統(tǒng)流程圖,數(shù)據(jù)流程圖是管理信息系統(tǒng)的總體設(shè)計(jì)圖[12]。 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)系統(tǒng)的需要,設(shè)計(jì)2個(gè)數(shù)據(jù)表來存放用戶信息,數(shù)據(jù)庫中這兩個(gè)表的名稱分別為BACK和DATA。列表的詳細(xì)內(nèi)容如下: 列名數(shù)據(jù)類型說明IDTEXT序號(hào)用戶名TEXT聊天人員的用戶名密碼TEXT密碼性別TEXT聊天人員性別年齡TEXT年齡個(gè)人說明TEXT個(gè)人說明列名數(shù)據(jù)類型說明IDTEXT序號(hào)用戶名TEXT用戶名密碼TEXT密碼上線時(shí)間TEXT上線時(shí)間IPTEXTIP遠(yuǎn)程端口TEXT遠(yuǎn)程端口計(jì)算機(jī)名稱TEXT計(jì)算機(jī)名稱 各主要窗體及核心代碼介紹 密碼模塊為了提高軟件操作安全性,進(jìn)入系統(tǒng)前,需要進(jìn)行身份驗(yàn)證,通過此窗口輸入個(gè)人信息以驗(yàn)證身份。用戶登陸到界面后如果要修改密碼,可以選擇在設(shè)置選項(xiàng)或是密碼服務(wù)選項(xiàng)里選擇修改密碼。登陸界面和登陸流程圖如下: 登陸流程圖 數(shù)據(jù)初始化模塊數(shù)據(jù)庫需要初始化的功能,實(shí)現(xiàn)清空數(shù)據(jù)庫的功能,實(shí)現(xiàn)的方法就是用原始的數(shù)據(jù)庫文件覆蓋替換現(xiàn)有的數(shù)據(jù)庫文件。關(guān)鍵程序代碼所示:FileNames = Dir( amp。 \qk\*.mdb, vbNormal + vbDirectory) 39。If FileNames = Then MsgBox 數(shù)據(jù)初始化失敗, vbInformation Exit SubEnd IfDim a As LongDim str_tem As StringDim str As StringDim rs As Dim intAnswer As IntegerintAnswer = MsgBox(真的要初始化數(shù)據(jù)嗎?請(qǐng)確認(rèn)!, vbOKCancel + vbQuestion, 確認(rèn)框)If intAnswer = vbOK ThenstrSource = amp。 \qk\strDestination = amp。 \CopyFile strSource, strDestination, FalseMsgBox 數(shù)據(jù)初始化完畢,請(qǐng)按“確定”返回, vbInformationEnd If界面圖如下: 數(shù)據(jù)備份和還原模塊數(shù)據(jù)需要定期備份,并且具有還原的功能,以保證數(shù)據(jù)的穩(wěn)定性,所以數(shù)據(jù)備份還原的模塊是必須有的。實(shí)現(xiàn)方法是把現(xiàn)有的數(shù)據(jù)庫文件放入備份的文件夾里,還原的時(shí)候再將其覆蓋替換當(dāng)前的數(shù)據(jù)庫文件。數(shù)據(jù)備份關(guān)鍵程序如下所示:On Error GoTo finish txtServerName = Format(Now, yyyymmddhhmm) WritePrivateProfileString DataSet, SID, txtServerName, amp。 \ I = MsgBox(您確定要備份本地?cái)?shù)據(jù)庫嗎?, vbExclamation + vbYesNo, 警告) If I vbYes Then 39。這里點(diǎn)擊的是“no Exit Sub Else strSource = amp。 \ strDestination = amp。 \bat\ CopyFile strSource, strDestination, False MsgBox 本地?cái)?shù)據(jù)庫已被成功備份到當(dāng)前程序所在文件夾的bat子文件夾中??!, vbInformation + vbOKOnly, 系統(tǒng)提示 End If Exit Subfinish:MsgBox 本地?cái)?shù)據(jù)庫備份失?。? vbOKOnly + vbInformation, 提示 數(shù)據(jù)庫備份后被保存到程序鎖在文件夾的BAT子文件夾中,如圖所示:數(shù)據(jù)還原關(guān)鍵程序代碼:Dim strSource, strDestination As StringDim I As IntegerDim FileNames As StringDim ServerName As StringDim Nian As StringDim Yue As StringDim Ri As StringDim Shi As StringDim Fen As StringFileNames = Dir( amp。 \bat\*.mdb, vbNormal + vbDirectory) If FileNames = Then MsgBox 找不到備份文件,請(qǐng)重新備份!!, vbInformation + vbOKOnly, 系統(tǒng)提示 Exit SubEnd IfDim a As LongDim str_tem As String str_tem = Space$(20) a = GetPrivateProfileString(DataSet, SID, , str_tem, 20, amp。 \) If a = 0 Then MsgBox 數(shù)據(jù)庫文件出錯(cuò),: End ServerName = Left$(str_tem, Len(Trim$(str_tem)) 1) Nian = Mid(ServerName, 1, 4) Yue = Mid(ServerName, 5, 2) Ri = Mid(ServerName, 7, 2) Shi = Mid(ServerName, 9, 2) Fen = Mid(Se
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1