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

正文內容

基于tcp局域網(wǎng)聊天程序設計(delphi(已修改)

2024-11-28 15:03 本頁面
 

【正文】 1 基于 TCP 局域網(wǎng)聊天程序 第 一 章 設計 理論基礎 TCP/IP 協(xié)議 TCP/IP 協(xié)議的核心部分是傳輸層協(xié)議 (TCP、 UDP),網(wǎng)絡層協(xié)議 (IP)和物理接口層,這三層通常是在操作系統(tǒng)內核中設計。因此用戶一般不涉及。 TCP 是面向連接的,通信雙方保持一條通路,好比目前的電話線,使用 tel 登陸 BBS,用的就是 TCP 協(xié)議; UDP是無連接的,通信雙方都不保持對方的狀態(tài),瀏覽器訪問 Inter 時使用的 HTTP 協(xié)議就是基于 UDP協(xié)議的。 編程時,編程界面有兩種形式:一、是由內核心直接提供的系統(tǒng)調用;二、 使用以庫函數(shù)方式提供的各種函數(shù)。前者為核內設計,后者為核外設計。用戶服務要通過核外的應用程序才能設計,所以要使用套接字 (socket)來設計。 客戶機 /服務器模式 C/S 結構( Client/Server 結構)是大家熟知的客戶機和服務器結構。它是軟件系統(tǒng)體系結構,通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理分配到 Client 端和 Server 端來實現(xiàn),降低了系統(tǒng)的通訊開銷。 目前大多數(shù)應用軟件系統(tǒng)都是 Client/Server 形式的兩層結構,由于現(xiàn)在的軟件應用系統(tǒng)正在向分布式的 Web應用發(fā)展, Web 和 Client/Server 應用都可以進行同樣的業(yè)務處理,應用不同的模塊共享邏輯組件;因此,內部的和外部的用戶都可以訪問新的和現(xiàn)有的應用系統(tǒng),通過現(xiàn)有應用系統(tǒng)中的邏輯可以擴展出新的應用系統(tǒng)。這也就是目前應用系統(tǒng)的發(fā)展方向。 首先服務器方要啟動,并根據(jù)請求提供相應服務: ( 1)打開一通信通道并告知本地主機,它在某一公認地址端口上 (如 為 80)接受客戶請求。 ( 2)等待客戶請求到達該端口。 ( 3)接收到重復服務請求,處理該請求并發(fā)送應答信號。接收并發(fā)服務請求,要激活一新進程來處理這個 客戶請求。新進程處理此客戶請求,并不需要對其他請求做出應答。服務完成后,關閉此新進程與客戶的通信鏈路,并終止。 ( 4)返回第二步,等待另外的客戶請求 ( 5)關閉服務器。 客戶方: ( 1)打開一通信通道,并連接到服務器所在主機的特定端口。 ( 2)向服務器發(fā)出服務請求報文,等待并接收應答;繼續(xù)提出請求。 2 ( 3)請求結束后關閉通信通道并終止。 從上面的描述過程可知: ( 1)客戶與服務器進程的作用是非對稱的。因此編碼不同。 ( 2)服務進程一般是先于客戶請求啟 動的。只要系統(tǒng)運行,該進程一直存在,直到 正常終止或者強迫終止。在 TCP/IP 網(wǎng)絡中兩個進程間的相互作用的主機模式是客戶機 /服務器模式 (Client/Server model)。該模式的建立基于以下兩點: 非對等作用; 通信完全是異步的。 Socket socket 之間的連接可以分為三種類型:客戶端連接,監(jiān)聽連接以及服務器端連接。 客戶端連接是指由客戶端的 socket 提出連接請求,要連接的目標是服務器端的socket。為此,客戶端的 socket 必須首先描述它要連接的服務器端 socket(主要是指服務器 端 socket 的地址和端口號 ),然后再定位所要連接的服務器端 socket,找到以后,就向服務器端 socket 請求連接。當然,服務器端的 socket 此時未必正好處于準備好狀態(tài),不過,服務器端的 socket 會自動維護客戶請求連接的隊列,然后在它認為合適的時候向客戶端 socket 發(fā)出 允許連接 (accept)的信號,這時客戶端 socket 與服務器端 socket 的連接就建立了。 監(jiān)聽連接,服務器端 socket 并不定位具體的客戶端 socket,而是處于等待連接的狀態(tài)。當服務器端 socket 監(jiān)聽到或者說 接收到客戶端 socket 的連接請求,它就響應客戶端 socket 的請求建立一個新的 socket 句柄并與客戶 端連接,而服務器端 socket繼續(xù)處于監(jiān)聽狀態(tài),還可以接收其它客戶端 socket 的連接請求。 服務器端連接,是指當服務器端 socket 接收到客戶端 socket 的連接請求后,就把服務器端 socket 的描述發(fā)給客戶端,一旦客戶端確認了此描述,連接就建立了。在本文中的聊天程序用的就是監(jiān)聽連接,即服務器設置連接個數(shù)后進行監(jiān)聽,客戶端進行對服務器端的連接,這樣就可以進行相互通信了。 事件的應答 當使用 sockets 寫應用程序時,大多數(shù)工作發(fā)生在 socket 控件的 handler 事件中 .當通過 socket連接開始讀或寫時 ,OnRead和 OnWrite事件在 nonblocking client socke中發(fā)生從而通知 ,服務器 sockets(blocking or nonblocking)收到OnClientRead 和 OnClientWrite 事件 . 當服務器結束一個連接時 ,客戶 scokets收到一個 OnDisconnect事件 .當客戶端結束一個連接時 ,服務器 socket 收到一個 OnClientDisconnect 事件 . 3 另外 ,客戶端 Sockets和服務器端 socket從連接中收到一個錯誤信息時 ,都將產生有個錯誤事件 . 錯誤事件 :客戶 sockets和服務器 sockets通常會產生一個 OnError事件 ,當他們從連接中收到一個錯誤信息的時候 .你能夠寫一個 OnError 事件處理去響應這些錯誤信息 .這個 OnError事件處理提供傳送關于 socket試圖做什么的時候這個錯誤發(fā)生的信息 ,以及錯誤信息提供的錯誤代 碼 .可以在 OnError事件處理中對這個錯誤作出響應 ,并且把錯誤代碼改為 0,以避免 socket 產生一個例外 . 當開始和完成發(fā)生時 ,socket 控件通常會收到一個事件號 (number of events).如果應用程序需要改變 socket開始操作的處理過程或通過連接開始讀或寫操作時 ,將寫事件 handlers 去應答這些 client events 和 server events. 第 二 章 系統(tǒng)設計 系統(tǒng)設計目標 局域網(wǎng)聊天程序的設計目標為一個高性能的,易于使用的,面向局域網(wǎng)的 即時信息軟件。最終的程序應具有如下功能 : ( 1) 客戶端使用簡便,服務器端運行穩(wěn)定。客戶端與服務器端可運行在多種系統(tǒng)平臺,具有良好的兼容性能。 ( 2) 客戶端與服務器端功能獨立,可獨立運行在不同的計算機上或運行在同一臺計算機上 ,具有最大的靈活性。 ( 3) 能夠進行注冊,設置自己的用戶名和密碼,自動更新其他用戶的名單。 ( 4) 選擇特定用戶并與其交談,還可以向在所有在線的用戶發(fā)送消息。 2. 2 系統(tǒng)原理框圖 本次課程設計的原理框圖如圖 所示: 圖 4 2.
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1