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

正文內容

畢業(yè)設計-基于net_20的局域網即時通信(編輯修改稿)

2025-01-08 19:20 本頁面
 

【文章內容簡介】 互聯(lián)網有關的操作都離不開 TCP/IP 協(xié)議。不過 TCP/IP 協(xié)議也是這三大協(xié)議中配置起來最麻煩的一個,單機上網還好,而通過局域網訪問互聯(lián)網的話,就要詳細設置 IP 地址,網關,子網掩碼, DNS服務器等參數(shù)。 TCP/IP 盡管是目前最流行的網絡協(xié)議,但 TCP/IP 協(xié)議在局域網中的通信效率并不高 。 Socket 協(xié)議 socket的英文原義是 “孔 ”或 “插座 ”。在這里作為 4BDS UNIX的進程通信機制,取后一種意義。 socket非常類似于電話插座。以一個國家級電話網為例。電話的通 話雙方相當于相互通信的 2個進程,區(qū)號是它的網絡地址;區(qū)內一個單位的交換機相當于一臺主機,主機分配給每個用戶的局內號碼相當于 socket號。任何用戶在通話之前,首先要占有一部電話機,相當于申請一個 socket;同時要知道對方的號碼,相當于對方有一個固定的 socket。然后向對方撥號呼叫,相當于發(fā)出連接請求 (假如對方不在同一區(qū)內,還要撥對方區(qū)號,相當于給出網絡地址 )。對方假如在場并空閑 (相當于通信的另一主機開機且可以接受連接請求 ),拿起電話話筒,雙方就可以正式通話,相當于連接成功。雙方通話的過程,是一方向電話機 發(fā)出信號和對方從電話機接收信號的過程,相當于向 socket發(fā)送數(shù)據(jù)和從 socket接收數(shù)據(jù)。通話結束后,一方掛起電話機相當于關閉 socket,撤消連接。 在電話系統(tǒng)中,一般用戶只能感受到本地電話機和對方電話號碼的存在,建立通話的過程,話音傳輸?shù)倪^程以及整個電話系統(tǒng)的技術細節(jié)對他都是透明的,這也與 socket機制非常相似。 socket利用網間網通信設施實現(xiàn)進程通信,但它對通信設施的細節(jié)毫不關心,只要通信設施能提供足夠的通信能力,它就滿足了。 至此,我們對 socket進行了直觀的描述。抽象出來, socket實質 上提供了進程通信的端點。進程通信之前,雙方首先必須各自創(chuàng)建一個端點,否則是沒有辦法建立聯(lián)系并相互通信的。正如打電話之前,雙方必須各自擁有一臺電話機一樣。在網間網內部,每一個 socket用一個半相關描述 :(協(xié)議,本地地址,本地端口 )一個完整的 socket有一個本地唯一的 socket號,由操作系統(tǒng)分配。 最重要的是, socket 是面向客戶 /服務器模型而設計的,針對客戶和服務器程序提供不同的 socket 系統(tǒng)調用??蛻綦S機申請一個 socket (相當于一個想打電話的人可以在任何一臺入網電話上撥號呼叫 ),系統(tǒng)為之 分配一個 socket號;服務器擁有全局公認的 基于 .NET 8 socket ,任何客戶都可以向它發(fā)出連接請求和信息請求 (相當于一個被呼叫的電話擁有一個呼叫方知道的電話號碼 )。 socket利用客戶 /服務器模式巧妙地解決了進程之間建立通信連接的問題。服務器socket 半相關為全局所公認非常重要。讀者不妨考慮一下,兩個完全隨機的用戶進程之間如何建立通信?假如通信雙方沒有任何一方的 socket 固定,就好比打電話的雙方彼此不知道對方的電話號碼,要通話是不可能的。 Socket 接口是訪問 Inter 使用得最廣泛的方法。 如果你有一臺剛配好 TCP/IP協(xié)議的主機,其 IP地址是 , 此時在另一臺主機或同一臺主機上執(zhí)行 ftp ,顯然無法建立連接。因 這臺主機沒有運行 FTP服務軟件。同樣, 在另一臺或同一臺主機上運行瀏覽軟件 如 Netscape,輸入 FTP服務軟件(該軟件將打開一個 Socket, 并將其綁定到 21端口),再在這臺主機上運行一個 Web 服務軟件(該軟件將打開另一個 Socket,并將其綁定到 80端口)。這樣,在另一臺主機或同一臺主機上執(zhí)行 ftp , FTP客戶軟件將通過 21端口來呼叫主機上由 FTP 服務軟件提供的 Socket,與其建立連接并對話。而在 scape中輸入 80端口來呼叫主機上由 Web服務軟件提供的 Socket,與其建 立連接并對話。 在 Inter 上有很多這樣的主機,這些主機一般運行了多個服務軟件,同時提供幾種服務。每種服務都打 開一個 Socket,并綁定到一個端口上,不同的端口對應于不同的服務。 Socket 正如其英文原意那樣,象一個多孔插座。一臺主機猶如布滿各種插座的房間,每個插座有一個編號,有的插座提供 220 伏交流電, 有的提供 110 伏交流電,有的則提供有線電視節(jié)目。 客戶軟件將插頭插到不同編號的插座,就可以得到不同的服務。 C/S 模型 在網絡連接模式中 ,除對等網外 ,還有另一種形式的網絡,即客戶機 /服務器網,Client/Server。在客戶機 /服務器網絡中,服務器是網絡的核心,而客戶機是網絡的基礎,客戶機依靠服務器獲得 所需要的網絡資源,而服務器為客戶機提供網絡必須的資源。 這里客戶和服務器都是指通信中所涉及的兩個應用進程(軟件)。使用計算機的人是計算機的“用戶”( user)而不是“客戶”( client)。但在許多國外文獻中,也經常把運行客戶程序的機器稱為 client(這種情況下也可把 client 譯為“客戶機”),把運行服務器程序的機器稱為 server。所以有時要根據(jù)上下文判斷 client 與 server 是指軟件還是硬件。 它是軟件系統(tǒng)體系結構,通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理分配到 Client 端和 Server 端來實現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應用軟件系統(tǒng)基于 .NET 9 都是 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ā)展方向。 C/S 結構的優(yōu)缺點 C/S 結構的優(yōu)點是能充分發(fā)揮客戶端 PC 的處理能力,很多工作可以在客戶端處理后再提交給服務器。 對應的優(yōu)點就是客戶端響應速度快。 缺點主要有以下幾個: 而隨著互聯(lián)網的飛速發(fā)展,移動辦公和分布式辦公越來越普及,這需要我們的系統(tǒng)具有擴展性。這種方式遠程訪問需要專門的技術,同時要對系統(tǒng)進行專門的設計來處理分布式的數(shù)據(jù)。 客戶端需要安裝專用的客戶端軟件。首先涉及到安裝的工作量,其次任何一臺電腦出問題,如病毒、硬件損壞,都需要進行安裝或維護。還有,系統(tǒng)軟件升級時,每一臺客戶機需要重新安裝,其維護和升級成本非常高。 對客戶端的操作系統(tǒng)一般也會有限制??赡苓m應于 Windows 98,但不能用于Windows 2021 或 Windows XP。或者不適用于微軟新的操作系統(tǒng)等等,更不用說 Linux、Unix 等。 C/S 架構軟件的優(yōu)勢與劣勢 應用服務器運行數(shù)據(jù)負荷較輕。最簡單的 C/S 體系結構的數(shù)據(jù)庫應用由兩部分組成,即客戶應用程序和數(shù)據(jù)庫服務器程序。二者可分別稱為前臺程序與后臺程序。運行數(shù)據(jù)庫服務器程序的機器,也稱為應用服務器。一旦服務器程序被啟動,就隨時等待響應客戶程序發(fā)來的請求;客戶應用程序運行在用戶自己的電腦上,對應于數(shù)據(jù)庫服務器,可稱為客戶電腦,當需要對數(shù)據(jù)庫中的數(shù)據(jù)進行任何操作時,客戶程序就自動地尋找 服務器程序,并向其發(fā)出請求,服務器程序根據(jù)預定的規(guī)則作出應答,送回結果,應用服務器運行數(shù)據(jù)負荷較輕。 數(shù)據(jù)的儲存管理功能較為透明。在數(shù)據(jù)庫應用中,數(shù)據(jù)的儲存管理功能,是由服務器程序和客戶應用程序分別獨立進行的,前臺應用可以違反的規(guī)則,并且通常把那些不同的(不管是已知還是未知的)運行數(shù)據(jù),在服務器程序中不集中實現(xiàn),例如訪問者的權限,編號可以重復、必須有客戶才能建立定單這樣的規(guī)則。所有這些,對于工作在前臺程序上的最終用戶,是“透明”的,他們無須過問(通常也無法干涉)背后的過程,就可以完成自己的一切工作。在客戶服 務器架構的應用中,前臺程序不是非?!笆菪 ?,麻煩的事情都交給了服務器和網絡。在 C/S 體系的下,數(shù)據(jù)庫不能真正成為公共、專業(yè)化的倉庫,它受到獨立的專門管理。 C/S 架構的劣勢是高昂的維護成本且投資大。首先,采用 C/S 架構,要選擇適當?shù)幕?.NET 10 數(shù)據(jù)庫平臺來實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的真正“統(tǒng)一”,使分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫系統(tǒng)去管理,但邏輯上兩地的操作者要直接訪問同一個數(shù)據(jù)庫才能有效實現(xiàn),有這樣一些問題,如果需要建立“實時”的數(shù)據(jù)同步,就必須在兩地間建立實時的通訊連接,保持兩地的數(shù)據(jù)庫服務器在線運行,網絡管理工作人員既要 對服務器維護管理,又要對客戶端維護和管理,這需要高昂的投資和復雜的技術支持,維護成本很高,維護任務量大。 其次,傳統(tǒng)的 C/S 結構的軟件需要針對不同的操作系統(tǒng)系統(tǒng)開發(fā)不同版本的軟件,由于產品的更新?lián)Q代十分快,代價高和低效率已經不適應工作需要。在 JAVA 這樣的跨平臺語言出現(xiàn)之后, B/S 架構更是猛烈沖擊 C/S,并對其形成威脅和挑戰(zhàn)。 序列化 序列化 (serialization)是將對象狀態(tài)轉換為可保持或傳輸?shù)母袷降倪^程。在序列化期間,對象將其當前狀態(tài)寫入到臨時或持久性存儲區(qū)。以后,可以通過從存儲區(qū)中讀取 或反序列化對象的狀態(tài),重新創(chuàng)建該對象。與序列化相對的是反序列化,它將流轉換為對象。這兩個過程結合起來,可以輕松地存儲和傳輸數(shù)據(jù)。 序列化使其他代碼可以查看或修改那些不序列化便無法訪問的對象實例數(shù)據(jù)。確切地說,代碼執(zhí)行序列化需要特殊的權限:即指定了 SerializationFormatter 標志的 SecurityPermission。在默認策略下,通過 Inter 下載的代碼或 Intra 代碼不會授予該權限;只有本地計算機上的代碼才被授予該權限。 通常,對象實例的所有字段都會被序列化,這意 味著數(shù)據(jù)會被表示為實例的序列化數(shù)據(jù)。這樣,能夠解釋該格式的代碼有可能能夠確定這些數(shù)據(jù)的值,而不依賴于該成員的可訪問性。類似地,反序列化從序列化的表示形式中提取數(shù)據(jù),并直接設置對象狀態(tài),這也與可訪問性規(guī)則無關。 對于任何可能包含重要的安全性數(shù)據(jù)的對象,如果可能,應該使該對象不可序列化。如果它必須為可序列化的,請嘗試生成特定字段來保存不可序列化的重要數(shù)據(jù)。如果無法實現(xiàn)這一點,則應注意該數(shù)據(jù)會被公開給任何擁有序列化權限的代碼,并確保不讓任何惡意代碼獲得該權限。 序列化的目的 以某種存儲形式使自定義 對象持久化; 將對象從一個地方傳遞到另一個地方。 兩種序列化技術 二進制序列化保持類型保真度,這對于在應用程序的不同調用之間保留對象的狀態(tài)很有用。例如,通過將對象序列化到剪貼板,可在不同的應用程序之間共享對象。您可以將對象序列化到流、磁盤、內存和網絡等等。遠程處理使用序列化“通過值”在計算基于 .NET 11 機或應用程序域之間傳遞對象。 XML 序列化僅序列化公共屬性和字段,且不保持類型保真度。當您要提供或使用數(shù)據(jù)而不限制使用該數(shù)據(jù)的應用程序時,這一點是很有用的。由于 XML 是一個開放式標準,因此,對于通過 Web 共享數(shù)據(jù)而言,這是一個很好的選擇。 SOAP 同樣是一個開放式標準,這使它也成為一個頗具吸引力的選擇。 多線程 線程 每個正在系統(tǒng)上運行的程序都是一個進程。每個進程包含一到多個線程。進程也可能是整個程序或者是部分程序的動態(tài)執(zhí)行。線程是一組指令的集合,或者是程序的特殊段,它可以在程序里獨立執(zhí)行。也可以把它理解為代碼運行的上下文。所以線程基本上是輕量級的進程,它負責在單個程序里執(zhí)行多任務。通常由操作系統(tǒng)負責多個線程的調度和執(zhí)行。 多線程 多線程是為了使得多個線程并行的工作 以完成多項任務,以提高系統(tǒng)的效率。線程是在同一時間需要完成多項任務的時候被實現(xiàn)的。 使用線程的好處有以下幾點: ( 1) 使用線程可以把占據(jù)長時間的程序中的任務放到后臺去處理 ( 2) 用戶界面可以更加吸引人,這樣比如用戶點擊了一個按鈕去觸發(fā)某些事件的處理,可以彈出一個進度條來顯示處理的進度 ( 3) 程序的運行速度可能加快 ( 4) 在一些等待的任務實現(xiàn)上如用戶輸入、文件讀寫和網絡收發(fā)數(shù)據(jù)等,線程就比較有用了。在這種情況下我們可以釋放一些珍貴的資源如內存占用等等。 線程 模型 單線程模型 在這種線程模型中,一 個進程中只能有一個線程,剩下的進程必須等待當前的線程執(zhí)行完。這種模型的缺點在于系統(tǒng)完成一個很小的任務都必須占用很長的時間。 塊線程模型 這種模型里,一個程序里可能會包含多個執(zhí)行的線程。在這里,每個線程被分為進程里一個單獨的塊。每個進程可以含有多個塊,可以共享多個塊中的數(shù)據(jù)。程序規(guī)定了每個塊中線程的執(zhí)行時間。所有的請求通過 Windows 消息隊列進行串行化,這樣保證了每個時刻只能訪問一個塊,因而只有一個單獨的進程可以在某一個時刻得到執(zhí)行。這種模型比單線程模型的好處在于,可以響應同一時刻的多個用戶請求的任務而不 只是單基于 .NET 12 個用戶請求。但它的性能還不是很好,因為它使用了串行化的線程模型,任務是一個接一個得到執(zhí)行的。 多線程塊模型 多線程塊模型( MTA)在每個進程里只有一個塊而不是多個塊。這單個塊控制著多個線程而不是單個線程。這里不需要消息隊列,因為所有的線程都是相同的塊的一個部分,并且可以共享。這樣的程序比單線程模型和 STA 的執(zhí)行速度都要塊,
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1