標(biāo)題: [轉(zhuǎn)帖]Linux操作系統(tǒng)網(wǎng)絡(luò)服務(wù)器概念及原理 [打印本頁]

作者: srvee    時間: 2011-11-17 10:03
標(biāo)題: [轉(zhuǎn)帖]Linux操作系統(tǒng)網(wǎng)絡(luò)服務(wù)器概念及原理

  Linux系統(tǒng)網(wǎng)絡(luò)服務(wù)器模型主要有兩種:并發(fā)服務(wù)器和循環(huán)服務(wù)器。

  所謂并發(fā)服務(wù)器就是在同一個時刻可以處理來自多個客戶端的請求;循環(huán)服務(wù)器是指服務(wù)器在同一時刻指可以響應(yīng)一個客戶端的請求。而且對于TCP和UDP套接字,這兩種服務(wù)器的實(shí)現(xiàn)方式也有不同的特點(diǎn)。

  1、TCP循環(huán)服務(wù)器:

  首先TCP服務(wù)器接受一個客戶端的連接請求,處理連接請求,在完成這個客戶端的所有請求后斷開連接,然后再接受下一個客戶端的請求。

  創(chuàng)建TCP循環(huán)服務(wù)器的算法如下:socket(……); //創(chuàng)建一個TCP套接字bind(……); //邦定公認(rèn)的端口號listen(……); //傾聽客戶端連接while(1) //開始循環(huán)接收客戶端連接{ accept(……);//接收當(dāng)前客戶端的連接while(1)

  { //處理當(dāng)前客戶端的請求read(……);process(……);write(……);} close(……); //關(guān)閉當(dāng)前客戶端的連接,準(zhǔn)備接收下一個客戶端連接} TCP循環(huán)服務(wù)器一次只處理一個客戶端的請求,如果有一個客戶端占用服務(wù)器不放時,其它的客戶機(jī)連接請求都得不到及時的響應(yīng)。因此,TCP服務(wù)器一般很少用循環(huán)服務(wù)器模型的。

  2、TCP并發(fā)服務(wù)器:

  并發(fā)服務(wù)器的思想是每一個客戶端的請求并不由服務(wù)器的主進(jìn)程直接處理,而是服務(wù)器主進(jìn)程創(chuàng)建一個子進(jìn)程來處理。

  創(chuàng)建TCP并發(fā)服務(wù)器的算法如下:socket(……); //創(chuàng)建一個TCP套接字bind(……); //邦定公認(rèn)的端口號listen(……);//傾聽客戶端連接while(1) //開始循環(huán)接收客戶端的接收{(diào) accept(……);//接收一個客戶端的連接if(fork(……)==0) //創(chuàng)建子進(jìn)程{ while(1)

  3、UDP循環(huán)服務(wù)器:

  4、多路復(fù)用I/O并發(fā)服務(wù)器

  太長了說我字?jǐn)?shù)超了,汗。留個網(wǎng)址吧!

  本文來自: 賽微電子網(wǎng)-電子工程師社區(qū) 原文地址:http://www.srvee.com/embed/apply/qtLinuxczxtwlfwqgnjyl_62856.html

  相關(guān)閱讀:嵌入式Linux學(xué)習(xí)步驟簡介

               解析嵌入式Linux文件系統(tǒng)的構(gòu)建方法






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1