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

正文內(nèi)容

基于socket的網(wǎng)絡(luò)編程技術(shù)及其實現(xiàn)學(xué)士學(xué)位論文-文庫吧資料

2025-06-24 16:56本頁面
  

【正文】 圖像壓縮編碼對圖像采用不同的表達方式以減小表示圖像所需的數(shù)據(jù)量,所以也常稱為數(shù)據(jù)壓縮。采取有損壓縮的方法進行數(shù)據(jù)壓縮,在解壓時會造成較大的誤差擴。利用前一個事實的壓縮技術(shù)就是無損壓縮技術(shù),即壓縮后的圖像數(shù)據(jù)還原后與未壓縮時嚴(yán)格相同,沒有失真,如TIFF圖像文件格式;利用后一個事實的壓縮技術(shù)就是有損壓縮技術(shù),即壓縮后的圖像數(shù)據(jù)與未壓縮時有所不同,但不影晌人們對原始資料表達的信息造成誤解,如JPEG圖像文件格式。 圖像壓縮主要根據(jù)兩個基本事實來實現(xiàn)。壓縮的目的就是滿足存儲容量和傳輸帶寬的要求,而付出的代價是大量的計算。Windows規(guī)定下個掃描行所占的字節(jié)數(shù)必須是4的倍數(shù)(即以long為單位),不足的以0填充。位圖信息頭和顏色表組成位圖信息,B1TMAPINFO結(jié)構(gòu)定義如下:typcdefstruct tagBITMAPINFO{BITMAPINFoHEADER bmiIIeader; ∥位圖信息頭RGBQUAD bmiColors; ∥顏色表}BITMAPINFO;(4)位圖數(shù)據(jù)位圖數(shù)據(jù)記錄了位圖的每一個像素值,記錄順序是掃描行內(nèi)從左到右,掃描行之問從下到上。每米像素數(shù)LONG biYPelsPerMeter;∥位圖垂直分辨率,每米像素數(shù)DWORD biClrUsed; ∥位圖實際使用的顏色表中的顏色數(shù)DWORD biClrImportant; ∥位圖顯示過程中重要的顏色數(shù)}BITMAPINFOHEADER;(3)調(diào)色板(顏色表)調(diào)色板用于說明位圖中的顏色,它有若干個表項,每一個表項是一個RGBQUAD類型的結(jié)構(gòu),定義一種顏色。(1)BMP文件頭BMP文件頭數(shù)據(jù)結(jié)構(gòu)含有BMP文件的類型、文件大小和位圖起始位置等信息。Windows ,因此把這種BMP圖像文件格式稱為設(shè)備無關(guān)位圖(DIB)格式。Windows系統(tǒng)內(nèi)部各圖像繪制操作都是以BMP為基礎(chǔ)的。Windows會自動將設(shè)備環(huán)境結(jié)構(gòu)映射到相應(yīng)的物理設(shè)備,并且提供正確的輸入輸出指令,GDI在處理速度上幾乎和直接進行視頻訪問一樣快。Windows已經(jīng)提供了各種顯示卡的驅(qū)動程序,這樣我們的程序就不用關(guān)心與系統(tǒng)相連的顯示卡的類型,可以通過調(diào)用GDI函數(shù)來和硬件打交道。該函數(shù)的第一個參數(shù)指定處于監(jiān)聽狀態(tài)的流套接字;操作系統(tǒng)利用第二個參數(shù)來返回新創(chuàng)建的套接字的地址結(jié)構(gòu);操作系統(tǒng)利用第三個參數(shù)來返回新創(chuàng)建的套接字的地址結(jié)構(gòu)的長度。假如該函數(shù)執(zhí)行成功,則返回0;如果執(zhí)行失敗,則返回SOCKET_ERROR。服務(wù)程序可以調(diào)用listen函數(shù)使其流套接字s處于監(jiān)聽狀態(tài)。當(dāng)調(diào)用closesocket函數(shù)時,操作系統(tǒng)先檢查套接字?jǐn)?shù)據(jù)結(jié)構(gòu)中的該字段的值,如果為1,就表明只有一個套接字描述符指向它,因此操作系統(tǒng)就先把s在套接字描述符表中對應(yīng)的那條表項清除,并且釋放s對應(yīng)的套接字?jǐn)?shù)據(jù)結(jié)構(gòu);如果該字段大于1,那么操作系統(tǒng)僅僅清除s在套接字描述符表中的對應(yīng)表項,并且把s對應(yīng)的套接字?jǐn)?shù)據(jù)結(jié)構(gòu)的引用次數(shù)減1。由于每個進程中都有一個套接字描述符表,表中的每個套接字描述符都對應(yīng)了一個位于操作系統(tǒng)緩沖區(qū)中的套接字?jǐn)?shù)據(jù)結(jié)構(gòu),因此有可能有幾個套接字描述符指向同一個套接字?jǐn)?shù)據(jù)結(jié)構(gòu)。應(yīng)用程序在完成對請求的Socket庫的使用后,要調(diào)用WSACleanup函數(shù)來解除與Socket庫的綁定并且釋放Socket庫所占用的系統(tǒng)資源。以后應(yīng)用程序就可以調(diào)用所請求的Socket庫中的其它Socket函數(shù)了。該函數(shù)的第一個參數(shù)指明程序請求使用的Socket版本,其中高位字節(jié)指明副版本、低位字節(jié)指明主版本;操作系統(tǒng)利用第二個參數(shù)返回請求的Socket的版本信息。Winsock用bind函數(shù)給Socket指定一個本地IP地址和一個協(xié)議端口,其典型調(diào)用如下:result=bind(“Socket句柄”,“本地Socket地址”,“本地Socket地址長度”);服務(wù)器程序使用bind函數(shù)用Winsock登記一個協(xié)議端口,程序告訴Winsock監(jiān)視哪一個協(xié)議端口的數(shù)據(jù)傳送,Winsock接著告訴傳輸層將此協(xié)議端口收到的數(shù)據(jù)傳送給Winsock。無連接協(xié)議不建立與遠地服務(wù)器的直接連接。result=connect(“Socket句柄”,“遠地Socket地址”,“遠地Socket地址長度”);此時,內(nèi)部數(shù)據(jù)結(jié)構(gòu)就包含了網(wǎng)絡(luò)通信必須的五種信息。也就是說,Winsock為程序選擇協(xié)議端口,當(dāng)數(shù)據(jù)到達此端口時通知程序,程序不必關(guān)心Winsock使用哪一個協(xié)議端口。因此面向連接的客戶程序不需指明本地協(xié)議端口,它提供給Socket的唯一地址信息是遠地服務(wù)器信息(IP地址和協(xié)議端口)。面向連接的協(xié)議在連接端點之間建立一條虛電路,面向連接的客戶程序不必關(guān)心網(wǎng)絡(luò)軟件使用怎樣的本地地址傳輸數(shù)據(jù)。配置一個Socket程序可使用Winsock中不同的函數(shù)來配置一個Socket。下面語句顯示了一個典型的具體Winsock函數(shù)調(diào)用:Socket_handle=Socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);這個Winsock使用Internet協(xié)議簇(PF_INET)的TCP協(xié)議(IPPROTO_TCP)進行字節(jié)流(SOCK_STREAM)通信。由于編程時必須指定程序使用的協(xié)議簇,因而能夠為使用不同協(xié)議組和地址格式的網(wǎng)絡(luò)建立相同的接口。根據(jù)通信性質(zhì)不同可分為:Stream Sockets(流式套接字)和Datagram Sockets(數(shù)據(jù)報套接字),其中Stream Sockets提供無差錯的、面向連接的、無長度限制的雙向字節(jié)流傳輸,適應(yīng)于處理大量數(shù)據(jù),尤其適合于FTP服務(wù)。 AFDSYS管理的發(fā)送緩沖區(qū)SOSNDBUF和接收緩沖區(qū)SORCVBUF在缺省時兩個緩沖區(qū)的大小都為8192個字節(jié),但可以根據(jù)實際要求由應(yīng)用程序設(shè)定,由于我們傳輸?shù)膶ο罂赡苁谴髷?shù)據(jù)量文件,因此需要對系統(tǒng)的發(fā)送緩沖區(qū)和接收緩沖區(qū)作相應(yīng)的設(shè)定,以保障大數(shù)據(jù)量的文件數(shù)據(jù)的發(fā)送和接收。當(dāng)應(yīng)用程序利用Winsock發(fā)送和接收數(shù)據(jù)時,并不是由Winsock從網(wǎng)絡(luò)上發(fā)送和接收數(shù)據(jù)的,而是由核心模式驅(qū)動程序AFDSYS負(fù)責(zé)管理發(fā)送和接收緩沖區(qū)來發(fā)送和接收數(shù)據(jù)。 Winsock通信機制應(yīng)用程序的網(wǎng)絡(luò)通信歸根結(jié)底是利用相同的通信協(xié)議來完成信息的傳輸,應(yīng)用程序和Winsock都工作在Windows的用戶模式下,操作系統(tǒng)僅僅通過Winsock是不能完成網(wǎng)絡(luò)間的通信,還需要底層的支持,而套接字仿真器(套接字核心模式驅(qū)動程序)和傳輸驅(qū)動程序接口(Transport Driver Interface,TDI)是負(fù)責(zé)操作系統(tǒng)核心態(tài)環(huán)境下的網(wǎng)絡(luò)通信,起到了Winsock和傳輸協(xié)議之間的通信橋梁作用。Winsock規(guī)范定義并記錄了任何使用API與Internet通訊協(xié)議(ISP通常指TCP/IP)連接。應(yīng)用程序在網(wǎng)絡(luò)上傳輸和接收的信息都通過這個Socket接口來實現(xiàn)?,F(xiàn)在的Winsock已經(jīng)基本上實現(xiàn)了與協(xié)議無關(guān),你可以使用Winsock來調(diào)用多種協(xié)議的功能,但較常使用的是TCP/IP協(xié)議。UDP協(xié)議提供無連接的數(shù)據(jù)報服務(wù)。 無連接服務(wù)是郵政系統(tǒng)服務(wù)的抽象,每個分組都攜帶完整的目的地址,各分組在系統(tǒng)中獨立傳送。本質(zhì)上,連接是一個管道,收發(fā)數(shù)據(jù)不但順序一致,而且內(nèi)容相同。而傳輸層實現(xiàn)的是“端到端”通信,引進網(wǎng)間進程通信概念,同時也要解決差錯控制,流量控制,數(shù)據(jù)排序(報文排序),連接管理等問題,為此提供不同的服務(wù)方式: 面向連接(虛電路)或無連接 面向連接服務(wù)是電話系統(tǒng)服務(wù)模式的抽象,即每一次完整的數(shù)據(jù)傳輸都要經(jīng)過建立連接,使用連接,終止連接的過程。網(wǎng)絡(luò)中的n層總要向n+1層提供比n1層更完備的服務(wù),否則n層就沒有存在的價值。服務(wù)的表現(xiàn)形式是原語(primitive),如系統(tǒng)調(diào)用或庫函數(shù)?!胺?wù)”是描述相量相鄰層之間關(guān)系的抽象概念,即網(wǎng)絡(luò)中各層向緊鄰上層提供的一組操作。TCP協(xié)議提供這項服務(wù)。TCP協(xié)議提供這項服務(wù)。(7)順序在網(wǎng)絡(luò)傳輸中,兩個連續(xù)報文在端-端通信中可能經(jīng)過不同路徑,這樣到達目的地時的順序可能會與發(fā)送時不同。也就是說,不可能通信的一端用TCP協(xié)議,而另一端用UDP協(xié)議。(5)半相關(guān)綜上所述,網(wǎng)絡(luò)中用一個三元組可以在全局唯一標(biāo)志一個進程:(協(xié)議,本地地址,本地端口號) 這樣一個三元組,叫做一個半相關(guān)(halfassociation),它指定連接的每半部分。(4)連接兩個進程間的通信鏈路稱為連接。為保證數(shù)據(jù)的正確性,在網(wǎng)絡(luò)協(xié)議中須指定網(wǎng)絡(luò)字節(jié)順序。 通常主機地址由網(wǎng)絡(luò)ID和主機ID組成,在TCP/IP協(xié)議中用32位整數(shù)值表示;TCP和UDP均使用16位端口號標(biāo)識用戶進程。在互連網(wǎng)絡(luò)中,兩臺機器可能位于不同的網(wǎng)絡(luò),這些網(wǎng)絡(luò)通過網(wǎng)絡(luò)互連設(shè)備(網(wǎng)關(guān),網(wǎng)橋,路由器等)連接。TCP和UDP均規(guī)定,小于256的端口號才能作保留端口。因此,每一個標(biāo)準(zhǔn)服務(wù)器都擁有一個全局公認(rèn)的端口(即周知口,wellknown port),即使在不同的機器上,其端口號也相同。TCP/IP端口號的分配中綜合了上述兩種方式。有兩種基本分配方式:第一種叫全局分配,這是一種集中控制方式,由一個公認(rèn)的中央機構(gòu)根據(jù)用戶需要進行統(tǒng)一分配,并將結(jié)果公布于眾。由于TCP/IP傳輸層的兩個協(xié)議TCP和UDP是完全獨立的兩個軟件模塊,因此各自的端口號也相互獨立,如TCP有一個255號端口,UDP也可以有一個255號端口,二者并不沖突。在TCP/IP協(xié)議的實現(xiàn)中,端口的操作類似于一般的I/O操作,進程獲取一個端口,相當(dāng)于獲取本地唯一的I/O文件,可以用一般的讀寫原語訪問。端口是一種抽象的軟件結(jié)構(gòu)(包括一些數(shù)據(jù)結(jié)構(gòu)和I/O緩沖區(qū))。從這個意義上講,網(wǎng)絡(luò)通信的最終地址就不僅僅是主機地址了,還包括可以描述進程的某種標(biāo)識符。(1)端口網(wǎng)絡(luò)中可以被命名和尋址的通信端口,是操作系統(tǒng)可分配的一種資源。因此,網(wǎng)間進程通信還要解決多重協(xié)議的識別問題。例如,主機A賦于某進程號5,在B機中也可以存在5號進程,因此,“5號進程”這句話就沒有意義了。同一主機上,不同進程可用進程號(process ID)唯一標(biāo)識。網(wǎng)間進程通信要解決的是不同主機進程間的相互通信問題(可把同機進程通信看作是其中的特例)。套接字編程基本概念進程通信的概念最初來源于單機系統(tǒng)。原始套接字(SOCK_RAW):該套接字一般不會出現(xiàn)在高級網(wǎng)絡(luò)接口的實現(xiàn)中,因為它是直接針對協(xié)議的較低層( 如IP、TCP、UDP 等)直接訪問的。然而,數(shù)據(jù)報的實現(xiàn)對網(wǎng)絡(luò)線路占用率較低。流式套接字的實現(xiàn)屢見不鮮,如遠程登錄(TELNET)、文件傳輸協(xié)議(FTP)等均使用了流式套接字。這對數(shù)據(jù)的穩(wěn)定性、正確性和發(fā)送/接收順序要求嚴(yán)格的應(yīng)用十分適用,TCP協(xié)議使用該類接口。而且發(fā)送的數(shù)據(jù)是按順序接收的。一般情況下除非通信協(xié)議支持,只有相同類型的套接字方能相互傳遞數(shù)據(jù),Windows Sockets 版主要支持兩種類型的套接字:流式套接字和數(shù)據(jù)報套接字,還有一種是原始套接字,但為保證網(wǎng)絡(luò)應(yīng)用程序的兼容性,一般不鼓勵使用原始套接字。當(dāng)TCP/IP協(xié)議被集成到UNIX內(nèi)核中時,相當(dāng)于在UNIX系統(tǒng)引入了一種新型的I/O操作,UNIX用戶進程與網(wǎng)絡(luò)協(xié)議的交互作用比用戶進程與傳統(tǒng)的I/O設(shè)備相互作用復(fù)雜得多,因此引入了套接字作為通信端口,隨著UNIX 操作系統(tǒng)的廣泛使用,Socket 亦當(dāng)之無愧的成為了最流行的網(wǎng)絡(luò)通信程序接口之一。因特網(wǎng)的應(yīng)用層協(xié)議包括Finger、Whois、FTP(文件傳輸協(xié)議)、Gopher、HTTP(超文本傳輸協(xié)議)、Telent(遠程終端協(xié)議)、SMTP(簡單郵件傳送協(xié)議)、IRC(因特網(wǎng)中繼會話)、NNTP(網(wǎng)絡(luò)新聞傳輸協(xié)議)等。其中TCP協(xié)議提供可靠的數(shù)據(jù)流運輸服務(wù),UDP協(xié)議提供不可靠的用戶數(shù)據(jù)報服務(wù)。同時還包含網(wǎng)間控制報文協(xié)議(Internet Control Message Protocol, ICMP)用來提供網(wǎng)絡(luò)診斷信息。第二層:網(wǎng)間層,對應(yīng)于OSI七層參考模型的網(wǎng)絡(luò)層。實際上TCP/IP標(biāo)準(zhǔn)并不定義與ISO數(shù)據(jù)鏈路層和物理層相對應(yīng)的功能。ICP/IP協(xié)議族并不包含物理層和數(shù)據(jù)鏈路層,因此它不能獨立完成整個計算機網(wǎng)絡(luò)系統(tǒng)的功能,必須與許多其他的協(xié)議協(xié)同工作?! ? 應(yīng)用層表示層會話層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層 七層網(wǎng)絡(luò)模型 TCP/IP四層網(wǎng)絡(luò)模型 TCP/IP分層模型(TCP/IP Layening Model)被稱作因特網(wǎng)分層模型(Internet Layering Model)、因特網(wǎng)參考模型(Internet Reference Model)。定義資源可用性時,應(yīng)用層為了請求通信而必須判定是否有足夠的網(wǎng)絡(luò)資源。應(yīng)用層的功能一般包括標(biāo)識通信伙伴、定義資源的可用性和同步通信。表示層的編碼和轉(zhuǎn)化模式包括公用數(shù)據(jù)表示格式、性能轉(zhuǎn)化表示格式、公用數(shù)據(jù)壓縮模式和公用數(shù)據(jù)加密模式。第五層:會話層,建立、管理和終止表示層與實體之間的通信會話。流控管理設(shè)備之間的數(shù)據(jù)傳輸,確保傳輸設(shè)備不發(fā)送比接收設(shè)備處理能力大的數(shù)據(jù);多路傳輸使得多個應(yīng)用程序的數(shù)據(jù)可以傳輸?shù)揭粋€物理鏈路上;虛電路由傳輸層建立、維護和終止;差錯校驗包括為檢測傳輸錯誤而建立的各種不同結(jié)構(gòu);而差錯恢復(fù)包括所采取的行動(如請求數(shù)據(jù)重發(fā)),以便解決發(fā)生的任何錯誤。第四層:傳輸層,向高層提供可靠的端到端的網(wǎng)絡(luò)數(shù)據(jù)流服務(wù)。相同MAC(Media Access Control)標(biāo)準(zhǔn)的不同網(wǎng)段之間的數(shù)據(jù)傳輸一般只涉及到數(shù)據(jù)鏈路層,而不同的MAC標(biāo)準(zhǔn)之間的數(shù)據(jù)傳輸都涉及到網(wǎng)絡(luò)層。第三層:網(wǎng)絡(luò)層,負(fù)責(zé)在源點和終點之間建立連接。第二層:數(shù)據(jù)鏈路層,通過物理網(wǎng)絡(luò)鏈路提供可靠的數(shù)據(jù)傳輸。第一層:物理層,負(fù)責(zé)最后將信息編碼成電流脈沖或其它信號以用于網(wǎng)上傳輸。在網(wǎng)絡(luò)歷史的早期,ISO(國際標(biāo)準(zhǔn)化組織)和國際電報電話咨詢委員會(CCITT)共同出版了開放系統(tǒng)互聯(lián)的七層參考模型。為了提高效率,每個協(xié)議只應(yīng)該注意沒有被其他協(xié)議處理過的那部分通信問題;為了主協(xié)議的實現(xiàn)更加有效,協(xié)議之間應(yīng)該能夠共享特定
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1