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

正文內(nèi)容

通信工程畢業(yè)設(shè)計(jì)_基于socket的即時(shí)通訊軟(文件)

2025-12-24 16:55 上一頁面

下一頁面
 

【正文】 傳輸控制協(xié)議是字節(jié)流協(xié)議。如果接收方應(yīng)用程序要求數(shù)據(jù)順序一致,應(yīng)用程序必須在數(shù)據(jù)到達(dá)后,校對這些數(shù)據(jù)。同樣,如果連續(xù)兩天給兩個(gè)人郵信,你也不能知道哪封信先收到。如果端口這個(gè)概念對你來說很陌生,請考慮計(jì)算機(jī)上的硬件端口。 例如, PC 機(jī)的并行打印端口稱為 LPTl 和 LPT2,串行端口稱為 COM1 和 COM2。多年來,程序員編寫 PC 程序時(shí)都假定 LPT1 表示并行打印端口 1。像 PC 程序員使用打印端口 LPT1 用于打印, Inter 程序員也對具體應(yīng)用程序使用許多協(xié)議端口。 客戶機(jī) /服務(wù)器模型將網(wǎng)絡(luò)應(yīng)用程序分為客戶和服務(wù)器兩部分。此時(shí),服務(wù)程序被喚醒并且為客戶提供服務(wù),對客戶的請求做出適當(dāng)?shù)姆磻?yīng)。這方面的一個(gè)典型例子就是提供 Inter 從域名到 IP 地址映射服務(wù)的 DNS 服務(wù)器。 當(dāng)建立服務(wù)器程序時(shí),應(yīng)該將服務(wù)器程序設(shè)計(jì)成等候客戶的請求。 Socket 執(zhí)行體接著告訴傳輸層某個(gè)特定協(xié)議端口已被使用,并將其收到的所有數(shù)據(jù)傳送給 Socket API。 Socket API 中的bind()函數(shù)讓程序?qū)⒁粋€(gè)本地地址(包括主機(jī)地址和協(xié)議端口)和一個(gè) Socket 聯(lián)系起來。因此無連 接客戶程序必須在一個(gè)協(xié)議端口,對應(yīng)答數(shù)據(jù)報(bào)進(jìn)行偵聽。 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 8 第 4 章 需求分析及開發(fā)方法 需求分析 一個(gè)即時(shí)通訊軟件應(yīng)提供基于 TCP/IP 網(wǎng)絡(luò)的即時(shí)消息傳送、消息廣播、實(shí)時(shí)聊天等功能。 ( 4) 即使用戶不在線,也能通過服務(wù)器發(fā)送離線消息。 ( 8) 用戶下線更新 ( 9) 有權(quán)限的人可以發(fā)系統(tǒng)廣播通知 ( 10) 查看用戶信息 ( 11) 更改個(gè)人信息 ( 12) 開機(jī)啟動設(shè)置 ( 13) 主窗口總是浮在最上端 ( 14) 速度快,占用資源少 系統(tǒng)功能模塊 根據(jù)上述的需求分析,并針對個(gè)人所掌握的知識和自己畢業(yè)設(shè)計(jì)時(shí)間的限制,要做到面面俱到是不可能的,并考慮到作為局域網(wǎng)(校園網(wǎng))聊天工具,終端用戶數(shù)量較少,我設(shè)計(jì)的通訊軟件借鑒了 、聊天室 等即時(shí)聊天工具,聊天信息采用服務(wù)器轉(zhuǎn)發(fā)方式,只要當(dāng)前在線的用戶都可以接收到,當(dāng)然,也實(shí)現(xiàn)了兩人之間私聊的功能。 生命周期法: 把一個(gè)信息系統(tǒng)從其提出、分析、設(shè)計(jì)和使用,直到停止使用的整個(gè)生存期視為一個(gè)生命周期。 原型法: 是系統(tǒng)開發(fā)者在初步了解用戶需求的基礎(chǔ)上,開發(fā)出能實(shí)現(xiàn)系統(tǒng)基本功能的一個(gè)原型,再根據(jù)用戶對原型使用與評價(jià)的意見,提出修改方案,修改完善原型,如此反復(fù)多次,直到得到用戶滿意的最終系統(tǒng)為止。為管理信息系統(tǒng)的開發(fā)提供了全新的思路,面向?qū)ο蠓椒ㄒ詫ο鬄橹行摹? 使用原型法開發(fā)大體有以下幾個(gè)步驟: ( 1) 確定系統(tǒng)需求。 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 10 ( 3) 對初始原型進(jìn)行需求迭代,不斷進(jìn)行修正或改進(jìn),直至得到一個(gè)用戶滿意的原型,從而終止原型迭代過程。 原型法的生命周期提供了一種完整的、靈活的、近于動態(tài)的需求定義技術(shù)。 圖 原型法工作流程圖 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 11 第 5 章 總體設(shè)計(jì) 設(shè)計(jì)思想 服務(wù)器端和客戶端需要分別設(shè)計(jì),除了主聊天界面外,還加上了登錄界面,以便管理。在整個(gè)系統(tǒng)設(shè)計(jì)過程中,對客戶端和服務(wù)器端的消息到達(dá)這一事件的設(shè)計(jì)和編碼是系統(tǒng)的關(guān)鍵。使用 TCP 協(xié)議來實(shí)現(xiàn)服務(wù)器 N 客戶模式。在創(chuàng)建客戶應(yīng)用程序時(shí),必須知道服務(wù)器名或其 IP 地址( RemoteHost 屬性)及服務(wù)器進(jìn)行偵聽的端口( RemotePort 屬性) ,然后調(diào)用 Connect 方法。建立連接后 ,任何一方計(jì)算機(jī)都可以發(fā)送、接收對方數(shù)據(jù)。決定采用 ACCESS 數(shù)據(jù)庫保存用戶的基本信息。在一個(gè)工作組級別的網(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ī)制。列表的詳細(xì)內(nèi)容如下: 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 14 表 注冊信息表 列名 數(shù)據(jù)類型 說明 ID TEXT 序號 用戶名 TEXT 聊天人員的用戶名 密碼 TEXT 密碼 性別 TEXT 聊天人員性別 年齡 TEXT 年齡 個(gè)人說明 TEXT 個(gè)人說明 表 登陸信息表 列名 數(shù)據(jù)類型 說明 ID TEXT 序號 用戶名 TEXT 用戶名 密碼 TEXT 密碼 上線時(shí)間 TEXT 上線時(shí)間 IP TEXT IP 遠(yuǎn)程端口 TEXT 遠(yuǎn)程端口 計(jì)算機(jī)名稱 TEXT 計(jì)算機(jī)名稱 各主要窗體及核心代碼介紹 密碼模塊 為了提高軟件操作安全性,進(jìn)入系統(tǒng)前,需要進(jìn)行身份驗(yàn)證,通過此窗口輸入個(gè)人信息以驗(yàn)證身份。 \qk\*.mdb, vbNormal + vbDirectory) 39。實(shí)現(xiàn)方法是把現(xiàn)有的數(shù)據(jù)庫文件放入備份的文件夾里,還原的時(shí)候再將其覆蓋替換當(dāng)前的數(shù)據(jù)庫文件。 \ strDestination = amp。 Nian amp。 Ri amp。 Fen amp。 \ CopyFile strSource, strDestination, False MsgBox 本地?cái)?shù)據(jù)庫已被成功恢復(fù)! , vbInformation + vbOKOnly, 系統(tǒng)提示 End If End Sub 對話框如圖 69 和 610: 圖 圖 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 20 查看服務(wù)器信息 作為服務(wù)器需要對服務(wù)器本身運(yùn)行的信息有準(zhǔn)確的掌握,而且還記錄用戶注冊和登陸的信息。 formtime amp。 (1).Text amp。 人 amp。 vbCrLf 保存記錄以及查看記錄 對于保存的聊天和日志信息,服務(wù)器必須能夠很方便的顯示出任意一天的信息,實(shí)現(xiàn)快速查看。 amp。 \data\ amp。 str DoEvents Loop Close 1 If t = Then Text1 = 這一天沒 有任何聊天信息 Else Text1 = t Exit Sub 30: Close 1 Text1 = 這一天的聊天信息不存在,或文件已丟失 End Sub 在選擇日期的界面點(diǎn)擊任意的一天,會在 顯示選中的日期。通知的內(nèi)容存放在tongz = GetSetting(即時(shí)通訊軟件服務(wù)器 , tongz, tongz),其中 tongz 鍵值位置在 HKEY_CURRENT_USER\Software\VB and VBA Program Settings\即時(shí)通訊軟件服務(wù)器 \server。 SaveSetting 即時(shí)通訊軟件服務(wù)器 , tongz, tongz, tongz For I = 1 To maxconnext If Winsock1(I).State = sckConnected Then Winsock1(I).SendData 12| amp。 通知大家 : amp。右邊列表顯示在線名單,雙擊列表可以顯示個(gè)人資料,由群聊轉(zhuǎn)為私聊后,可以選擇選定的目標(biāo)進(jìn)行一對一的悄悄話。sl If = True Then = True End If End Sub Private Sub sendmsg_click() If sckConnected Then MsgBox 你還沒登陸 !, vbOKOnly + 64, 提示 ein_Click Exit Sub End If If Then 03| amp。 Text2 Text2 = End If 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 27 End Sub Private Sub geren_Click() formactive = False = id If sckConnected Then (0) = False (2) = False = 1 Else 04| amp。 注冊窗口和個(gè)人信息窗口的界面如圖 617 和圖 618: 圖 注冊窗口 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 30 圖 底層通訊設(shè)計(jì) 服務(wù)器端: 為了使能及時(shí)響應(yīng)多個(gè)用戶 的請求,我對 winsock 控件添加了數(shù)組,也就是說,在連接上一個(gè)用戶后,自動增加一個(gè) winsock 控件進(jìn)行偵聽。在以前的 Winsock 中找到空閑的Winsock I = I + 1 DoEvents Wend If I = maxconnext Then 39。Winsock( i)被占用 Else 39。接收 ReDim Preserve nowconnext(maxconnext + 1) nowconnext(maxconnext) = True End If End If End Sub 因?yàn)榭蛻舳税l(fā)送的每一個(gè)請求,都有個(gè)頭命令,服務(wù)器端根據(jù)這個(gè)頭命令來分辨客戶端的請求類型。 服務(wù)器可以把系統(tǒng)管理員發(fā)的消息及其它客戶登錄、退出、對話的信息分別傳遞給傳給客戶端。 服務(wù)器代碼如下 : Winsock1(0).LocalPort = 19。 代碼結(jié)構(gòu)如下 : Private Sub WskclientDataArrival(ByVal bytesTotal AsLong) ’消息到達(dá)時(shí)接收 Dim ClientData As String Dim tou As Integer 39。 客戶端: 發(fā)送連接,是靠服務(wù)器回復(fù)的標(biāo)志變量,來判別連接狀態(tài)的。當(dāng)前接收端口增加 Load Winsock1(maxconnext) 39。使用現(xiàn)成的 Socket Winsock1(I).Accept requestID 39。 Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long) On Error Resume Next Dim I As Long If Index = 0 Then 39。 vbCrLf Form_Load End Sub 點(diǎn)擊登陸后會顯示以下登陸窗口,用戶 ID 六位數(shù)后自動轉(zhuǎn)到密碼欄,回車即完成登陸操作。 Mid(( 1), 1, 3) amp。 Left(Right(, 7), 6) = True (1) = False (2) = False 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 26 = False End If End Sub Private Sub Option1_Click() 39。 vbCrLf 發(fā)布通知的 界面圖如圖 : 圖 發(fā)放通知界面圖 客戶界面 客戶機(jī)用 Winsock 控件發(fā)出信息,服務(wù)器端通過信息頭的標(biāo)識分辨客戶端的要求,比如登陸、注冊、注銷、發(fā)送信息,另外客戶端還有標(biāo)簽欄接收服務(wù)器發(fā)來的系統(tǒng)通告。 amp。 vbCrLf amp。 密碼驗(yàn)證時(shí)用到的部分代碼: na = GetSetting(即時(shí)通訊軟件服務(wù)器 , server, name) pw = GetSetting(即時(shí)通訊軟件服務(wù)器 , server, password) 改新密碼時(shí)用到的部分代碼: SaveSetting 即時(shí)通訊軟件服務(wù)器 , server, name, Text3 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 24 SaveSetting 即時(shí)通訊軟件服務(wù)器 , server, password, Text4 管理員帳號和密碼都存在本機(jī)注冊表,初始賬戶和密碼都為空。 amp。 .txt For Input As 1 Do Until EOF(1) Input 1, str t = t amp。 選擇日期的界面在類模塊已經(jīng)定義了 Dim Calendar As Class1 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 21 關(guān)鍵代碼如下: Private Sub Command1_Click() c1 = Not c1 If c1 Then Else End If End Sub Private Sub Command2_Click() On Error GoTo 30 Dim t, str As String c1 = False Open amp。 CStr(maxconnext) amp。 vbCrLf = 當(dāng)前 amp。 vbCrLf = (3).Text amp。 (0).LocalIP amp。 備份數(shù)據(jù)庫嗎? , vbExclamation + vbYesNo, 警告 ) If I vbYes T
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1