青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴(yán)以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

SPWebServer:一個(gè)基于 SPServer 的 web 服務(wù)器框架

from:http://iunknown.javaeye.com/blog/78561

關(guān)鍵字: C++   libevent spserver http embedded web 服務(wù)器   

看到這個(gè)題目,估計(jì)很多人會(huì)問:為什么要再實(shí)現(xiàn)一個(gè) web 服務(wù)器?

這里有幾個(gè)原因:

1.這是一個(gè) web 服務(wù)器框架,不是一個(gè)完整的 web 服務(wù)器。也就是說 SPWebServer 提供的是一套 API 和類庫,可以方便地集成到現(xiàn)有的應(yīng)用程序中。可以稱 SPWebServer 為 embedded web server

2.有些時(shí)候,我們需要的不是一個(gè)功能強(qiáng)大完整的 web 服務(wù)器(例如 apache ),我們只是需要一個(gè)能提供最基本的 http 功能的服務(wù)器框架。比如要用 C/C++ 實(shí)現(xiàn) XML-RPC,JSON-RPC 服務(wù)器端,或者為 jabberd 實(shí)現(xiàn)一個(gè) http bind 的時(shí)候。這些場景下,也可以使用 apache,但是使用 embedded web server 可以簡化配置。

3.在如下的場合中,apache 顯得不合適,而 embedded web server 卻正好合適:在一個(gè)現(xiàn)有的應(yīng)用程序中,用 http 接口來提供一些簡單的控制和統(tǒng)計(jì)功能。

基于以上原因,也為了
1.豐富 SPServer 項(xiàng)目(請(qǐng)參考: SPServer : 一個(gè)基于 Half-Sync/Half-Async 模式的高并發(fā) server 框架)的功能;
2.正好作為 SPServer 框架的一個(gè)比較好的示范例子;
因此基于 SPServer 框架實(shí)現(xiàn)了一個(gè) web 服務(wù)器框架。

源代碼下載:
http://spserver.googlecode.com/files/spserver-0.5.src.tar.gz
http://code.google.com/p/spserver/downloads/list

下面來看一個(gè)使用 SPWebServer 的簡單例子。


class SP_HttpEchoHandler : public SP_HttpHandler {   
public:   
    SP_HttpEchoHandler()
{}   
    
virtual ~SP_HttpEchoHandler(){}   
  
    
virtual void handle( SP_HttpRequest * request, SP_HttpResponse * response ) {   
        response
->setStatusCode( 200 );   
        response
->appendContent( "<html><head>"   
            
"<title>Welcome to simple http</title>"   
            
"</head><body>" );   
  
        
char buffer[ 512 ] = 0 };   
        snprintf( buffer, 
sizeof( buffer ),   
            
"<p>The requested URI is : %s.</p>", request->getURI() );   
        response
->appendContent( buffer );   
  
        snprintf( buffer, 
sizeof( buffer ),   
            
"<p>Client IP is : %s.</p>", request->getClientIP() );   
        response
->appendContent( buffer );   
  
        
forint i = 0; i < request->getParamCount(); i++ ) {   
            snprintf( buffer, 
sizeof( buffer ),   
                
"<p>Param - %s = %s<p>", request->getParamName( i ),   
                request
->getParamValue( i ) );   
            response
->appendContent( buffer );   
        }
          
  
        
forint i = 0; i < request->getHeaderCount(); i++ ) {   
            snprintf( buffer, 
sizeof( buffer ),   
                
"<p>Header - %s: %s<p>", request->getHeaderName( i ),   
                request
->getHeaderValue( i ) );   
            response
->appendContent( buffer );   
        }
          
  
        
if( NULL != request->getContent() ) {   
            response
->appendContent( "<p>" );   
            response
->appendContent( request->getContent(),   
                request
->getContentLength() );   
            response
->appendContent( "</p>" );   
        }
          
  
        response
->appendContent( "</body></html>\n" );   
    }
      
}
;   
  
class SP_HttpEchoHandlerFactory : public SP_HttpHandlerFactory {   
public:   
    SP_HttpEchoHandlerFactory()
{}   
    
virtual ~SP_HttpEchoHandlerFactory(){}   
  
    
virtual SP_HttpHandler * create() const {   
        
return new SP_HttpEchoHandler();   
    }
   
}
;   
  
//---------------------------------------------------------   
  
int main( int argc, char * argv[] )   
{   
    
int port = 8080;   
  
    SP_Server server( 
"", port,   
        
new SP_HttpHandlerAdapterFactory( new SP_HttpEchoHandlerFactory() ) );   
  
    server.runForever();   
  
    
return 0;   
}
   

上面的代碼演示的是一個(gè) http echo server ,即把 client 發(fā)過來的請(qǐng)求信息顯示在頁面上。

在最簡單的情況下,使用 SPWebServer 需要實(shí)現(xiàn)兩個(gè)類:SP_HttpHandler 的子類 和 SP_HttpHandlerFactory 的子類。
SP_HttpHandler 的子類負(fù)責(zé)處理具體的 http 請(qǐng)求。
SP_HttpHandlerFactory 的子類協(xié)助 spserver 為每一個(gè)連接創(chuàng)建一個(gè) SP_HttpHandler 子類實(shí)例。

在實(shí)現(xiàn)過程中,使用了 Adapter 模式,把 SP_HttpHandler 和 SP_HttpHandlerFactory 適配為 SP_Handler 和 SP_HandlerAdapterFactory。這兩個(gè) Adapter 都已經(jīng)實(shí)現(xiàn),不需要使用者來實(shí)現(xiàn)。

posted on 2007-08-21 01:26 楊粼波 閱讀(420) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲激情在线播放| 亚洲精品乱码| 欧美一区二区成人6969| 亚洲人体一区| 日韩视频一区二区| 亚洲无线一线二线三线区别av| 日韩一级视频免费观看在线| 一区二区欧美亚洲| 亚洲欧美色婷婷| 久久影院午夜片一区| 欧美—级a级欧美特级ar全黄| 欧美日韩播放| 国产美女搞久久| 亚洲国产精品黑人久久久| aa级大片欧美三级| 性欧美暴力猛交69hd| 免费观看一级特黄欧美大片| 亚洲激情中文1区| 亚洲午夜精品久久久久久浪潮| 欧美一级片在线播放| 老司机午夜精品视频在线观看| 欧美片第1页综合| 国产日韩欧美一区在线| 亚洲精品乱码久久久久久按摩观 | 狼人天天伊人久久| 欧美日本一区二区三区| 国产精自产拍久久久久久蜜| 精品成人在线观看| 亚洲调教视频在线观看| 久久久久久69| 一本大道久久a久久精品综合| 欧美亚洲综合另类| 欧美日本精品| 在线免费观看成人网| 亚洲网站在线观看| 欧美激情久久久久| 国产精品99久久久久久人| 久久成人人人人精品欧| 欧美片在线观看| 在线观看一区二区精品视频| 亚洲综合色视频| 欧美高清视频在线 | 久久精品日韩欧美| 欧美日韩一区二区精品| 在线日本高清免费不卡| 欧美在线国产| 一区二区三区国产盗摄| 欧美顶级少妇做爰| 亚洲国产成人av在线| 久久久综合网站| 亚洲欧美一区二区三区久久 | 欧美午夜片在线观看| 最新日韩欧美| 韩国亚洲精品| 久久久久久成人| 性视频1819p久久| 久久先锋影音av| 欧美中文在线字幕| 国产精品最新自拍| 午夜精品一区二区三区在线播放 | 亚洲与欧洲av电影| 欧美理论视频| 一区二区三区四区五区精品视频| 欧美xart系列高清| 欧美在线在线| 国外成人在线视频| 麻豆精品网站| 久久综合国产精品| 亚洲国产精品久久久久婷婷老年| 美女视频黄免费的久久| 久久综合五月天婷婷伊人| 亚洲福利av| 亚洲高清影视| 欧美日韩成人在线播放| 一区二区三区视频在线| 一区二区日韩伦理片| 欧美午夜精品久久久久久孕妇| 亚洲在线一区二区三区| 亚洲在线成人| 黑人巨大精品欧美一区二区小视频 | 国内精品视频在线观看| 亚洲小说欧美另类婷婷| 欧美亚洲日本国产| 国产有码一区二区| 欧美成人嫩草网站| 欧美激情麻豆| 亚洲视频一区二区| 亚洲免费视频网站| 亚洲国语精品自产拍在线观看| 亚洲国产第一页| 欧美日韩精品免费观看视一区二区 | 国产精品久久综合| 亚洲网在线观看| 亚洲欧美国产日韩中文字幕| 国外成人在线| 亚洲精品一区在线观看香蕉| 国产精品入口麻豆原神| 欧美jizzhd精品欧美巨大免费| 欧美大片18| 欧美一级二区| 欧美成人免费在线观看| 欧美一区二区观看视频| 久久色在线观看| 亚洲一二三四区| 久久久久久久久久久久久久一区 | 另类综合日韩欧美亚洲| 欧美日韩卡一卡二| 免费在线视频一区| 国产精品乱码人人做人人爱| 欧美成人免费全部| 国产日韩欧美二区| 99这里只有久久精品视频| 在线不卡中文字幕| 午夜激情综合网| 亚洲综合视频网| 欧美精品一区视频| 美女久久网站| 国产欧美日韩高清| 一本色道久久加勒比88综合| 亚洲盗摄视频| 欧美一区二区三区免费观看| 一区二区三区四区五区精品| 蜜臀久久99精品久久久画质超高清 | 蜜臀av国产精品久久久久| 午夜精品一区二区三区在线播放 | 欧美日韩视频在线一区二区| 麻豆精品一区二区综合av| 国产精品一区二区你懂得| 国产亚洲福利社区一区| 久久久久久久999精品视频| 久久久www成人免费毛片麻豆 | 免费在线成人av| 亚洲欧美一区二区精品久久久| 韩日欧美一区二区三区| 国产精品网站在线播放| 美女黄色成人网| 欧美激情国产高清| 欧美主播一区二区三区美女 久久精品人| 欧美成人精品不卡视频在线观看| 亚洲国产精品久久久久秋霞蜜臀| 亚洲第一区在线观看| 国产精品日韩欧美一区二区三区 | 在线视频免费在线观看一区二区| 性亚洲最疯狂xxxx高清| 亚洲线精品一区二区三区八戒| 欧美国产日本韩| 91久久国产自产拍夜夜嗨| 亚洲经典在线看| 欧美精品七区| 亚洲裸体视频| 亚洲一区二区三区精品在线观看 | 欧美日韩视频在线一区二区观看视频| 亚洲国产毛片完整版 | 免费久久久一本精品久久区| 欧美高清你懂得| 99成人免费视频| 欧美日韩综合视频网址| 亚洲一区在线看| 久久久九九九九| 亚洲国产另类 国产精品国产免费| 女同性一区二区三区人了人一| 亚洲国产精品精华液网站| 亚洲深夜福利| 国产日韩精品电影| 美国十次成人| 99精品欧美| 久久人91精品久久久久久不卡 | 久久国产精品一区二区| 一色屋精品亚洲香蕉网站| 欧美国产日产韩国视频| 一区二区黄色| 老司机免费视频久久| av不卡在线| 美女在线一区二区| 国产精品乱码久久久久久| 欧美一级在线视频| 亚洲国产精品成人| 久久成人精品一区二区三区| 亚洲国产网站| 国产伦理一区| 免费高清在线一区| 亚洲午夜电影| 欧美国产日本韩| 久久福利视频导航| 一区二区三区精品国产| 激情成人综合网| 国产精品多人| 欧美精品色综合| 久久久www| 亚洲一区二区在线看| 亚洲精品你懂的| 美女91精品| 久久er精品视频| 一本色道久久综合亚洲二区三区 | 黑人一区二区| 欧美日韩国产欧美日美国产精品| 午夜在线视频一区二区区别| 亚洲精品久久久蜜桃| 免费欧美视频| 久久久精品国产免费观看同学|