




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1系統(tǒng)調用和應用編程接口大多數操作系統(tǒng)使用系統(tǒng)調用(systemcall)的機制在應用程序和操作系統(tǒng)之間傳遞控制權。對程序員來說,每一個系統(tǒng)調用和一般程序設計中的函數調用非常相似,只是系統(tǒng)調用是將控制權傳遞給了操作系統(tǒng)。多個應用進程
使用系統(tǒng)調用的機制應用程序1應用程序2應用程序n…由應用程序調用的系統(tǒng)函數用戶地址空間中的應用程序系統(tǒng)調用接口系統(tǒng)地址空間中的協(xié)議軟件包括TCP/IP協(xié)議軟件的操作系統(tǒng)內核應用編程接口API當某個應用進程啟動系統(tǒng)調用時,控制權就從應用進程傳遞給了系統(tǒng)調用接口。此接口再將控制權傳遞給計算機的操作系統(tǒng)。操作系統(tǒng)將此調用轉給某個內部過程,并執(zhí)行所請求的操作。內部過程一旦執(zhí)行完畢,控制權就又通過系統(tǒng)調用接口返回給應用進程。系統(tǒng)調用接口實際上就是應用進程的控制權和操作系統(tǒng)的控制權進行轉換的一個接口,即應用編程接口API
(ApplicationProgrammingInterface)幾種應用編程接口APIBerkeleyUNIX操作系統(tǒng)定義了一種API,它又稱為套接字接口(socketinterface)。微軟公司在其操作系統(tǒng)中采用了套接字接口
API,形成了一個稍有不同的API,并稱之為
WindowsSocket。AT&T為其UNIX系統(tǒng)V定義了一種API,簡寫為TLI(TransportLayerInterface)。應用進程通過套接字接入到網絡應用進程TCP由應用程序控制互聯網由操作系統(tǒng)控制客戶服務器套接字TCP應用進程套接字套接字的作用當應用進程需要使用網絡進行通信時就發(fā)出系統(tǒng)調用,請求操作系統(tǒng)為其創(chuàng)建“套接字”,以便把網絡通信所需要的系統(tǒng)資源分配給該應用進程。操作系統(tǒng)為這些資源的總和用一個叫做套接字描述符的號碼來表示,并把此號碼返回給應用進程。應用進程所進行的網絡操作都必須使用這個號碼。通信完畢后,應用進程通過一個關閉套接字的系統(tǒng)調用通知操作系統(tǒng)回收與該“號碼”相關的所有資源。套接字描述符表(每一個進程一個描述符)0:1:2:3:4:操作系統(tǒng)套接字的數據結構協(xié)議族:PF_INET服務:SOCK_STREAM本地IP地址:遠地IP地址:本地端口:遠地端口:
調用socket創(chuàng)建套接字2幾種常用的系統(tǒng)調用1.連接建立階段當套接字被創(chuàng)建后,它的端口號和IP地址都是空的,因此應用進程要調用bind(綁定)來指明套接字的本地地址。在服務器端調用bind時就是把熟知端口號和本地IP地址填寫到已創(chuàng)建的套接字中。這就叫做把本地地址綁定到套接字。服務器在調用bind后,還必須調用listen(收聽)把套接字設置為被動方式,以便隨時接受客戶的服務請求。UDP服務器由于只提供無連接服務,不使用listen系統(tǒng)調用。服務器緊接著就調用accept(接受),以便把遠地客戶進程發(fā)來的連接請求提取出來。系統(tǒng)調用accept的一個變量就是要指明從哪一個套接字發(fā)起的連接。并發(fā)方式工作的服務器接受連接請求的套接字MS1連接套接字連接套接字連接套接字S2S3操作系統(tǒng)服務器應用進程從屬服務器進程主服務器進程(原來的套接字)(新創(chuàng)建的套接字)調用accept要完成的動作較多。這是因為一個服務器必須能夠同時處理多個連接。這樣的服務器常稱為并發(fā)方式(concurrent)工作的服務器。2.傳送階段客戶和服務器都在TCP連接上使用send系統(tǒng)調用傳送數據,使用recv系統(tǒng)調用接收數據。通??蛻羰褂胹end發(fā)送請求,而服務器使用send發(fā)送回答。服務器使用recv接收客戶用send調用發(fā)送的請求??蛻粼诎l(fā)完請求后用recv接收回答。3.連接釋放階段一旦客戶或服務器結束使用套接字,就把套接字撤消。這時就調用close釋放連接和撤銷套接字。系統(tǒng)調用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地基買賣合同
- 委托咨詢服務協(xié)議書
- 競賽保密協(xié)議
- 北京物聯網技術合同
- 2024公司股東合作合同(32篇)
- 旅行社勞動用工合同
- 私人養(yǎng)殖場租賃合同
- 工作解決方案探討
- 離婚財產協(xié)議書覽
- 合作協(xié)議醫(yī)療器械
- 手術風險及醫(yī)療意外險告知流程
- 綜合實踐活動六年級下冊 飲料與健康課件 (共16張PPT)
- 數量金融的概況和歷史課件
- 《醫(yī)院重點??平ㄔO專項資金管理辦法》
- 最新短視頻運營績效考核表KPI(優(yōu)選.)
- 設備基礎隔振設計探討
- 千字文全文帶拼音——完美打印版
- JTT 1344-2020純電動汽車維護、檢測、診斷技術規(guī)范_(高清-最新)
- 蘭州大學接受進修人員申請表
- 拉線的作用和制作方法
評論
0/150
提交評論