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

正文內(nèi)容

基于qt嵌入式網(wǎng)絡聊天系統(tǒng)的設計-在線瀏覽

2025-07-10 19:03本頁面
  

【正文】 考模型中的網(wǎng)絡層(第 3 層)、傳輸層(第 4層)和應用層(第 7 層)。 TCP/IP 充分支持所有通用第 2 層協(xié)議。 6 TCP/IP 的特點 TCP/IP 協(xié)議的核心部分是傳輸層協(xié)議 (TCP、 UDP),網(wǎng)絡層協(xié)議 (IP)和物理接口層,這三層通常是在操作系統(tǒng)內(nèi)核中設計。編程時,編程界面有兩種形式:一、是由內(nèi)核心直接提供的系統(tǒng)調(diào)用;二、使用以庫函數(shù)方式提供的各種函數(shù)。用戶服務要通過核外的應用程序才能設計,所以要使用套接字 (socket)來設計。這將 在以后的篇幅中會給出更詳細的使用說明。 參數(shù): af: 通信發(fā)生的區(qū)域 type: 要建立的套接字類型 procotol: 使用的特定協(xié)議 指定本地地址 —— bind() 功能:將套接字地址與所創(chuàng)建的套接字號聯(lián)系起來。 參數(shù): s: 是由 socket()調(diào)用返回的并且未作連接的套接字描述符(套接字號)。 格式: int PASCAL FAR listen(SOCKET s, int backlog)。 關閉套接字 —— closesocket() 功能:關閉套接字 s 格式: BOOL PASCAL FAR closesocket(SOCKET s)。該模式的建立基于以下兩點: 非對等作用; 通信完全是異步的。 等待客戶請求到達該端口。 返回第二步,等待另一客戶請求 關閉服務器。 向服務器發(fā)送服務請求報文,等待并接收應答;繼續(xù)提出請求?? 請求結束后關閉通信通道并終止。其中, Sockets API 是 TCP/IP 網(wǎng)絡環(huán)境里,也是 Inter 上進行開發(fā)最為通用的 API。在桌面操作系統(tǒng)進入 Windows 時代后,仍然繼承了 Socket 方法??梢赃@樣理解:Socket 實際上是一個通信端點,通過它,用戶的 Socket 程序可以通過網(wǎng)絡和其他的Socket 應用程序通信。 Socket 有三類。第二種是 SOCK_DGRAM(數(shù)據(jù)報 ),提供無連接不可靠的通信,比如 UDP。 SOCKETS 機制 異步選擇機制: SOCKETS 的異步選擇函數(shù)提供了消息機制的網(wǎng)絡事件選擇,當使用它登記網(wǎng)絡事件發(fā)生時,應用程序相應窗口函數(shù)將收到一個消息,消息中指示了發(fā)生的網(wǎng)絡事件 ,以及與事件相關的一些信息。 FD_READ 期望在套接字上收到數(shù)據(jù)(即讀準備好)時接到通知 FD_WRITE 期望在套接字上可發(fā)送數(shù)據(jù)(即寫準備好)時接到通知 FD_OOB 期望在套接字上有帶外數(shù)據(jù)到達時接到通知 FD_ACCEPT 期望在套接字上有外來連接時接到通知 FD_CONNECT 期望在套接字連接建立完成時接到通知 FD_CLOSE 期望在套接字關閉時接到通知 例如:我們要在套接字讀準備好或寫準備好時接到通知,語句如下: rc=WSAAsyncSelect(s,hWnd,wMsg,FD_READ|FD_WRITE)。 異步請求函數(shù) 在 Berkeley Sockets 中請求服務是阻塞的, WINDOWS SICKETS 除了支持這一類函數(shù)外,還增加了相應的異步請求函數(shù) (WSAAsyncGetXByY()。 3 網(wǎng)絡通信模塊 分析 網(wǎng)絡通信 程序設計過程 在調(diào)用了 sockets 的啟動函數(shù) WSACleanup()之后才能進行其他的 Socket 系統(tǒng)調(diào)用 ,但 啟動函數(shù) WSAStartup()是為了 建立與 Windows Sockets DLL 的連接 ,因此在VC++ 所建立工程的工程設置中的連接的庫模塊必須進行設置,在其中的 link 欄內(nèi)的對象 /庫模塊中加入“ ” ,才能真正建立 建立與 Sockets DLL 的連接 。 具體流程圖如 1 所示。有連接的話 , 在客戶方,通過 socket()函數(shù)建立流式套接字 s,此時在服務器方,建立連接,通過 accept()返回,得到新的套接字 ns,客 戶方通過 connect()將套接字 s 與遠程地址連接 ,此時服務器方 /客戶方在 ns/s 上讀 /寫數(shù)據(jù),直到交換完成。 具體設計過程如圖 1所示,具體設計代碼將會在下面介紹: 通信設計代碼分析 先分析服務器端。 啟動函數(shù)必須是第一個使用的函數(shù),而且它允許指定 WINDOWS SOCKETS API 的版服務器方 Socket()建立流式接字,返回套接字號 s 客戶方 bind()套接字 s 與本地地址綁定 listen()通知 TCP 服務器準備接收連接 accept()接收連接,等待客戶端的連接 建立連接, accept()返回,得到新套接 ns Recv()/send()在 ns上讀 /寫數(shù)據(jù),直到完成交換 closesocket(),關閉套接字 ns Socket()建立流式套接字號 s connect()將套接字 s 與遠程地址連接 Recv()/send()在 s 上讀 /寫數(shù)據(jù),直到完成交換 closesocket()關閉套接字 s,結束 TCP 10 本,并獲得 SOCKETS 的特定的一些技術細節(jié)。 其中 wVersionRequested 保證 SOCKETS 可正常運行的 DLL 版本,如果不支持,則返回錯誤信息。 定義 OnAccept()函數(shù)來 接受連接請求,并保存與發(fā)起連接請求的客戶端進行通信 Socket, 為新的 socket注冊異步事件 。 定義 OnReceive()函數(shù)來 讀出網(wǎng)絡緩沖區(qū)中的數(shù)據(jù)包 。 接下來講講客戶端方。注冊異步事件時,沒有FD_ACCEPT,但增加了 FD_CONNECT事件,因此沒有 OnAccept()函數(shù),但增加了 OnConnect()函數(shù)。下面是 OnConnect()函數(shù)的定義,傳進來的參數(shù)是客戶端 Socket 和服務 器端發(fā)回來的連接是否成功的標志。定義 OnSend()函數(shù)來處理發(fā)送網(wǎng)絡數(shù)據(jù)事件 。 數(shù)據(jù)傳輸代碼分析 在服務器方用 WSASend()函數(shù)來發(fā)送數(shù)據(jù),使用 WSARecv()來接收數(shù)據(jù)。 若無錯誤發(fā)生且發(fā)送操作立即完成,則 WSASend()函數(shù)返回所發(fā)送的字節(jié)數(shù)。如果連接結束,則返回 0。否則的話,將返回 SOCKET_ERROR 錯誤,應用程序可通過 WSAGetLastError()來獲取相應的錯誤代碼 ,返回 1。任何其 11 他的錯誤表示重疊操作未能成功地啟動,以后也不會有完成指示。如果連接結束,則返回 0。否則的話,將返回 SOCKET_ERROR 錯誤,應用程序可通過WSAGetLastError()來獲取相應的錯誤代碼。任何其他的錯誤表示重疊操作未能成功地啟動,以后也不會有完成指示。否則的話,返回 SOCKET_ERROR 錯誤,應用程序可通過 WSAGetLastError()獲取相應錯誤代碼。如果連接已中止,返回 0。 4 界面模塊 分析 服務器端界面模塊分析 在服務器界面設計上設計很簡單,通過一個列表框來顯示服務器信息,一個啟動按鈕來啟動服務器,一個退出按鈕關閉服務器。 當用戶登陸,就會在列表框中顯示如“ 連接,接受 : USER 1001,接受 : PASS 1001” 三行字樣,如果登陸成功,在列表框中就會顯示“接受: LIST”字樣,獲取在線用戶列表。 在注冊用戶的時候,如果注冊成功,在列表框中就會顯示如“ ADD USER 1001 SUCCESS” ,如果失敗,就會在列表框中顯示“ ADD USER FAIL” 當修改用戶信息的時候就會在列表框中顯示“接受 : GINF 1001” ,如果修改成功,就會在列表框中顯示“接受 : UINF 1001” 。 其中客戶端界面設計思路,主要設計過程如圖 3 所示: 圖 3 客戶端界面輪廓 用戶登陸界面分析 用戶登陸界面如圖 4 所示 圖 4 用戶登陸界面 如圖 4 顯示,當單擊“登陸”按鈕進行用戶的登陸: 當用戶號碼未填寫時,會提示“請輸入用戶號碼”。 當服務器 IP未填寫或 格式不正確,會提示“請?zhí)顚懻_的服務器地址”。 用戶信息填寫完畢后 ,按“登陸”按鈕 ,如果與服務器連接失敗 ,就會提示如“連接失敗 :不能連接 上的服務器” 用戶登陸 用戶注冊 獲得在線用戶 用戶聊天 消息收 /發(fā) 文件收 /發(fā) 增加好友 查看 /修改信息 13 登陸成功就會進入在線用戶列表界面 ,如圖 6所示 .。 單擊“注冊向導”按鈕就可以進入用戶注冊界面 ,如圖 5 所示。通過“發(fā)送” 按鈕發(fā)送你要講的內(nèi)容,通過“聊天記錄”按鈕 /“關閉記錄”按鈕來顯示 /關閉聊天記錄。如圖 10所示。應用系統(tǒng)應該選擇哪種數(shù)據(jù)庫要根據(jù)系統(tǒng)的要求和企業(yè)的實際情況而定。本系統(tǒng)使用 MS SQL Server,主要有以下幾點理由: 1) MS SQL Server 比較容易使用,一般管理員較熟悉。 14 數(shù)據(jù)庫訪問方法 本程序示通過 用 ADO 來 訪問數(shù)據(jù)庫 ,分別 用 ADO 訪問 了 數(shù)據(jù)庫的各個對象及各方法。 ADO 使您能夠編寫應用程序以通過 OLE. DB 提供者訪問和操作數(shù)據(jù)庫服務器中的數(shù)據(jù)。OLE DB 是 Microsoft UDA(Universal Data Access)策略的技術基礎。 OLE DB 應用程序編程接口的目的是為各種應用程序提供最佳的功能,它并不符合簡單化的要求。 ADO 庫 包含 三個 基本 接口 :_ConnectionPtr 接 口、 _CommandPtr 接口和_RecordsetPtr 接口。通常使用它來創(chuàng)建一個數(shù)據(jù)連接或執(zhí)行一條不返回任何結果的 SQL語句,如一個存儲過程。對于要返回記錄的操作通常用 _RecordserPtr來設計。 _CommandPtr 接口返回一個記錄集。在使用 _CommandPtr 接口時,你可以利用全局 _ConnectionPtr 接 口,也可以在 _CommandPtr 接口里直接使用連接串。但如果你要頻繁訪問數(shù)據(jù)庫,并要返回很多記錄集,那么,你應該使用全局 _ConnectionPtr 接口創(chuàng)建一個數(shù)據(jù)連接,然后使用 _CommandPtr 接口執(zhí)行存儲過程和 SQL 語句。與以上兩種對象相比,它對記錄集提供了更多的控制功能,如記錄鎖定,游標控制等。如果你要使用多個記錄集,最好的方法是同 Command 對象一樣使用已經(jīng)創(chuàng)建了數(shù)據(jù)連接的全局 _ConnectionPtr 接口,然后使用_RecordsetPtr 執(zhí)行存儲過程和 SQL語句。 使用 ADO 操作 SQL 代碼分析 引入 ADO庫文件 使用 ADO前必須在工程的 import引入 ADO庫文件 ,以使編譯器能正確編譯。現(xiàn)在不需添加另外的頭文件,就可以使用 ADO 接口了 。在 MFC 應用程序里,一個比較好的方法是在應用程序主類的InitInstance 成員函數(shù)里初 始化 OLE/COM 庫環(huán)境。 連接數(shù)據(jù)庫 通過 MS SQL SERVER 2021 創(chuàng)建數(shù)據(jù)庫名為 XF,接著在 ODBC 中添加數(shù)據(jù)源,數(shù)據(jù)源名為 XF, 定義一個指向 Connection 對象的指針 :_ConnectionPtr _pConnection。在這段時間里體驗了無數(shù)的酸甜苦辣,從解決不了細小問題的苦惱到問題最終解決的喜悅,一直伴隨著整個設計過程。使我受益良多。 本設計在查閱了大量的文獻后進行理論研究的同時,借鑒了其他聊天程序、聊天程序的優(yōu)缺點,在此基礎上展開了研究工作,歸納起來,論文取得的成果和創(chuàng)新點主要有以下幾 個方面: 1) 通過網(wǎng)絡編程,設計了基本的聊天功能和文件傳輸功能。 3)利用 TCP/IP 協(xié)議中的 TCP協(xié)議,即面向連接的服務,進行數(shù)據(jù)的傳輸,對網(wǎng)絡中數(shù)據(jù)的傳輸過程。本次開發(fā),使我不僅學了 C++、數(shù)據(jù)結構、sql、 winsock 技術,還對網(wǎng)絡編程進行了深 入的學習,總結出了一些網(wǎng)絡編程的特點,可以為今后的開發(fā)提供參考。 17 7 參考書目 [1] David J. Kruglinski, Programming Visual C++.1998. [2] 施煒、李錚、秦潁, Windows Sockets 規(guī)范和應用 — Windows 網(wǎng)絡編程接口 . 1996. [3]Anthony Jones and Jim Ohlumd,TCP/IP 詳解 卷一:協(xié)議 (英文版 ). 機械工業(yè)出版社 ,2021. [4] 王罡 林立志 , 基于 Windows 的 TCP/IP 編程 .清華大學出版社, 2021. [5] 蔣東興等 ,Windows Sockets 網(wǎng)絡程序設計大全 . 清華大學出版社, 1999. [6] 薩師煊 , 數(shù)據(jù)庫系統(tǒng)概論 .高等教育出版社, 2021. [7]侯捷,深入簡出 MFC .1998 . [8]Jeff Prosise,MFC Windows 程序設計(第 2版)。 二、此冊于學院組織對各專業(yè)題目審查完成后,各教研室匯編選題指南,經(jīng)學生自由選題后,由實驗中心組織發(fā)給學生。 四、學生在指導老師的指導下填好《畢業(yè)論文(設計)開題報告》各項內(nèi)容,由指導教師和教研室審核通過后,確定其開題,并將此冊交指導老師保存。 六、中期檢查時,指導老
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1