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

正文內(nèi)容

基于linux網(wǎng)絡(luò)聊天室的設(shè)計_畢業(yè)設(shè)計論文-文庫吧資料

2024-09-04 15:24本頁面
  

【正文】 摘要 : 在 Linux 下開發(fā)高性能的網(wǎng)絡(luò)通信程序 , 是充分發(fā)揮 Linux 網(wǎng)絡(luò)特性的一個關(guān)鍵因素 。 recv()返回實際上接收的字節(jié)數(shù) , 或當(dāng)出現(xiàn)錯誤時 ,返回 1 并置相應(yīng)的 errno 值。 len 是緩沖的長度。 sockfd 是接收數(shù)據(jù)的 socket 描述符 。當(dāng) send()返回值與 len 不匹配時 , 應(yīng)該對這種情況進行處理。 send()函數(shù)返回實際上發(fā)送出的字節(jié)數(shù) , 可能會少于希望發(fā)送的數(shù)據(jù)。 len 是以字節(jié)為單位的數(shù)據(jù)的長度。 send()函數(shù)原型為 : int send ( int sockfd, const void msg, int len, intflags) 。 accept()之前 , 通常將 addrlen 初始化為 0。 addrlen 通常為一個指向值為 sizeof( struct sockaddr_in) 的整型指針變量。 int accept( int sockfd, void addr, int addrlen) 。通過調(diào)用 accept()函數(shù)為其建立一個連接 , accept()函數(shù)將返回一個新的 socket 描述符 , 來供這個新連接來使用。當(dāng) listen 遇到錯誤時返回 1, errno 被置為相應(yīng)的錯誤碼。backlog 指定在請求隊列中允許的最大請 求數(shù) , 進入的連接請求將在隊列中等待 accept()它們。 int listen( int sockfd, int backlog) 。進行客戶端程序設(shè) 計無須調(diào)用 bind(), 因為這種情況下只需知道目的機器的 IP 地址 , 而客戶通過哪個端口與服務(wù)器建立連接并不需要關(guān)心 , 內(nèi)核會自動選擇一個未被占用的端口供客戶端來使用。 serv_addr是包含目的機 IP 地址和端口號的指針 , addrlen 為結(jié)構(gòu)的大小。 connect()函數(shù)原型為 :int connect ( int sockfd, struct sockaddrserv_addr, int addrlen) 。另外要注意的是 , 當(dāng)調(diào)用函數(shù)時 , 一般不要將端口號置為小于 1024 的值 , 因為 1~ 1024 是保留端口號 , 可以使 用大于 1024 中任何一個沒有被占用的端口號。 bind()函數(shù)在成功被調(diào)用時返回 0。 / 填入本機 IP 地址 /通過將 置為 0, 函數(shù)會自動為選擇一個未占用的端口來使用。需要指出的是 , 可以用下面的賦值實現(xiàn)自動獲得本機 IP 地址和隨機獲取一個沒有被占用的端口號 :=0。sockfd 是一個 socket 描述符 , my_addr 是一個指 圖 計算機應(yīng)用 向包含有本機 IP 地址及端口號等信息的 sockaddr 類型的指針 。這一步對客戶端不是必需的。 ( 2) 步驟 2: 綁定 套接口 bind() 當(dāng)用 socket()建立套接口后 , 該套接口還是處于無名狀態(tài)的 , 無名套接口就象沒有號碼的電話一樣 ,別人無法向發(fā)送信息 ( 在同一 linux 內(nèi)核下可實現(xiàn)無名狀態(tài)下通信 ) 。 protocol 通常賦值“ 0” , 意味套接口使用 TCP /IP 協(xié)議。 Socket 通信程序開發(fā) 下面詳細說明 Socket 通信程序的開發(fā)過程 : ( 1) 步驟 1: 建立套接口 socket() int sockfd = socket ( int domain, int type, intprotocol) , 其中domain 參數(shù)指定 socket 協(xié)議族 , 包括 PF_LOACL 和 PF_INET, PF_LOACL 表示使用本地套接口 , PF_INET 表示使用 Inter 套接口。連接一旦建立 ,客戶機和服務(wù)器之間就可以通過調(diào)用 send()和recv()來發(fā)送和接收數(shù)據(jù)。 Socket 工作過程如下 : 服務(wù)器首先啟動 , 通過調(diào)用 Socket (), 建立一個Socket, 然后調(diào)用 bind()將該 Socket 和本地網(wǎng)絡(luò)地址綁系在一起 , 再調(diào)用listen()使 Socket 做好偵聽的準備 , 并規(guī)定它的請求隊列的長度 ,之后就調(diào) 用 accept()來接收連接。常用于檢驗新的協(xié)議實現(xiàn)或訪問。數(shù)據(jù)包以獨立包形式被發(fā)送 , 不提供無錯保證 , 數(shù)據(jù)可能丟失或重復(fù) , 并且接收順序混亂。 數(shù)據(jù)被看作是字節(jié)流 , 無長度限制。提供一個面向連接、可靠的數(shù)據(jù)傳輸服務(wù) , 數(shù)據(jù)無差錯、無重復(fù)地發(fā)送 , 且按發(fā)送順序接收。套接字在 TCP /IP 網(wǎng)絡(luò)模型中的地位如圖 1 所示。在Linux 中 , 套接字接口是應(yīng)用程序訪問下層的網(wǎng)絡(luò)協(xié)議的惟一方法。 TCP /IP 是計算機互連最常使用的網(wǎng)絡(luò)通訊協(xié)議 , TCP /IP 的核心部分由網(wǎng)絡(luò)操作系統(tǒng)的內(nèi)核實現(xiàn) ,應(yīng)用程序通過編程接口來訪問TCP /IP。而套接口中的網(wǎng)絡(luò)地址就相當(dāng)于電話號碼。套接口與電話的相似性還表現(xiàn)在另一方面。Linux 中的套接口與電話非常相似。對方的電話號碼 ( 在對方的位置處 ) 。 2 Socket 原理簡介 當(dāng)用電話與他人通信時 , 必須拿起話筒 , 撥叫對方的電話號碼 , 然后等待對方的應(yīng)答 。 Linux 操作系 統(tǒng)具有良好的穩(wěn)定性和出色的網(wǎng)絡(luò)性能 , 因此被廣泛應(yīng)用于網(wǎng)絡(luò)服務(wù)領(lǐng)域。在應(yīng)用開發(fā)中就像使用文件句柄一樣 , 可以對Socket 句柄進行讀、寫操作。 Socket 在計算機中提供了一個通信端口 , 可以通過這個端口與任何一個具有 Socket 接口的計算機通信。 S o c k e t ( )B i n d ( )L i s t e n ( )A c c e p t ( )R e a d ( )W r i t e ( )R e a d ( )C l o s e ( )T c p 服 務(wù) 器S o c k e t ( )C o n n e c t ( )W r i t e ( )R e a d ( )C l o s e ( )T c p 客 戶 端阻 塞 直 到 有 客 戶端 連 接建 立 連 接請 求 數(shù) 據(jù)回 應(yīng) 數(shù) 據(jù)結(jié) 束 連 接處 理 請 求 圖 13 Socket 通信流程圖 網(wǎng)絡(luò)套接字( socket)的概念 1 介紹 上世紀中后期 , 在美國國防部高研署 (DARPA)將 TCP /IP 的軟件提 供給加利尼亞大學(xué) Berkeley 分校后 , TCP /IP 很快被集成到 Unix 中 , 同時出現(xiàn)了許多成熟的 TCP /IP 應(yīng)用程序接口 (API) 。所以多個客戶端之間的通信就變?yōu)榱丝蛻舳伺c服務(wù)端的通信。 圖 11 用三次握手建立 TCP 連接 對于兩個計算機之間連接的釋放過程也需要類似的 3 次握手的互相確認的過程,如實驗圖 12 所示。 由于 TCP 要提供可靠的、面向連接的運輸服務(wù),所以不可避免地增加了許多系統(tǒng)開銷,比如確認、流量控制、計時器以及連接管理等都需要占用許多系統(tǒng)的時空資源。 TCP提供面向連接的服務(wù),在傳送數(shù)據(jù)之前必須先建立連接,數(shù)據(jù)傳送 結(jié)束后要釋放連接。它的特點是:因無連接,故提供的是不可靠的信道,但也是因無連接而具有很好的傳輸效率。它是以中午連接的邏輯通信信道。本聯(lián)盟就是想通過 bazaar 開發(fā)模型 ,在網(wǎng)上召集一些 Linux 的愛好者 ,開發(fā)出更優(yōu)秀的操作系統(tǒng)或 軟件。 Linux 這種獨特的自由流暢的開發(fā)模型已被命名為bazaar(集市模型)。 ( 3) Linux 的明天 Linux 最強大的生命力在于其公開的開發(fā)過程。 桌面上的 Linux 也在繼續(xù)完善。它
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1