C语言开发fastcgi初探(一)
生活随笔
收集整理的這篇文章主要介紹了
C语言开发fastcgi初探(一)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
這幾天閑著沒事干,雖然開學(xué)了,但是到下周才有課上。再者,研二了,也沒啥課了,導(dǎo)師又不讓我出去工作,我那個(gè)糾結(jié)啊。算鳥,那就自己折騰點(diǎn)東西玩玩吧。 由于自己的本科的時(shí)候,一開始腦子就被驢給T了,學(xué)WEB開發(fā)去了,算到現(xiàn)在,WEB開發(fā)也3,4年了,擅長ASP.NET和PHP開發(fā),數(shù)據(jù)庫主要是三個(gè),MSSQL,MYSQL和ACCESS。前端知識是必備的,基本的沒有問題。其它方面也有涉略,如:PYTHON,SQLITE,MANGODB等。 一直都想做得再底層一點(diǎn),因?yàn)槭荳EB,再底層,無非就是到了TCP/IP這一層,如果到這一層了,那就該寫WEB服務(wù)器了,目前還沒這想法,估計(jì)也沒那個(gè)心思去學(xué)習(xí)去寫。再往上一點(diǎn),就是寫WEB服務(wù)器的接口,像IIS就有ISAPI和FASTCGI等。加上前段時(shí)間用PHP寫了個(gè)網(wǎng)站,在網(wǎng)上也看了一個(gè)開源的C語言WEB程序(Raphters),再者,APACHE和LIGHTTPD,NGIX等都支持FASTCGI,最后就決定學(xué)著寫FASTCGI開發(fā)。 網(wǎng)上有個(gè)相應(yīng)的包,可以在 http://www.fastcgi.com下載。封裝了一些API,可以直接調(diào)用。如果想要再底層,那還是直接寫個(gè)WEB服務(wù)器來得更直接。這個(gè)包用的是nmake編譯,因?yàn)橹饕窃赪IN下做開發(fā),用NAMKE或MAKE等,總有那么點(diǎn)別扭。幸好VS自帶了NMAKE的編譯器,不像CMAKE,還得自己下包。 把包下載下來之后,用 VS2012 x86 本機(jī)工具命令提示 找到解壓的相應(yīng)目錄,進(jìn)去后,NMAKE -F MAKEFILE.NT 即可。記得噢,用VS2012 x86 本機(jī)工具命令提示,這個(gè)工具,不要用直接用 命令提示符。如果想直接用命令提示符合,就將NMAKE這個(gè)編譯器文件所在的路徑,加式PATH中即可。編譯成功之后,可以到examples\\echo\\release下,找到自帶的DEMO所編譯出來的echo.exe。但,如果直接雙擊打開,很遺憾,會(huì)提示出錯(cuò),一看錯(cuò)誤,就知道是什么原因,你懂的。到libfcgi\\Release,將libfcgi.dll,復(fù)制到windows目錄下,就OK了。再運(yùn)行echo.exe,就不會(huì)出錯(cuò)了。如果閃一下,就沒有了,那就從命令提示符中運(yùn)行吧。你懂的。 接下來,就是配置到IIS中。我用的是WIN7(64位),自帶的是IIS7.5,相對于IIS5/6來講,配置FASTCGI就簡單多了,網(wǎng)上一搜就有的哈,配置過PHP5.3及以上的話,應(yīng)該會(huì)不陌生。和配置PHP的FASTCGI一樣,將 請求路徑改成:*,將 可執(zhí)行文件選擇echo.exe就OK了,就可以通過IIS訪問了。 到上面這一步之后,我才發(fā)現(xiàn),跟python里面一個(gè)WEB框架--WEBPY(我沒有玩過DJANGO,勿噴),處理請求方面很相似。感覺WEBPY,像是更高一層的封裝,封裝好了MVC,直接定義一個(gè)類,就可以訪問。而現(xiàn)在這樣不行,我覺得現(xiàn)在唯一的方法,就是根據(jù)path_info的不同,做個(gè)簡單的router,至于M和V,那就算鳥,就像我用PHP一樣,很反感MODEL。 從配置,到現(xiàn)在花了兩個(gè)下午的時(shí)間了,中間有時(shí)也很煩躁,可能是因?yàn)镃語言太原始了。我想做個(gè)簡單的字符串替換,才發(fā)現(xiàn)C語言里面沒有這個(gè)樣的函數(shù)(標(biāo)準(zhǔn)庫,為了跨平臺,木辦法)。寫一個(gè)int p_len=strlen(path); 報(bào)錯(cuò),為嘛?p_len未定義,我又只得先int p_len;然后再用。偶滴神啊,我要瘋的。 還有,碰上個(gè)什么外部引用的什么鳥問題,一查才知道,沒有將要用的包,在編譯的時(shí)候加進(jìn)去。神啊,我得自己寫MAKEFILE和MAK文件,要偶的小命啊。 其實(shí)Raphters,好像就是在這個(gè)包上封裝出來的一個(gè)框架,采用的是CMAKE編譯方式。我現(xiàn)在還是按自己的思路寫,看啥時(shí)候,能寫出個(gè)像樣的DEMO,哈哈。 目前的思路就是:通過判斷path_info,做一個(gè)簡單的路由。模版方面,先做個(gè)簡單的字符串替換。數(shù)據(jù)庫方面的話,得下個(gè)包用。數(shù)據(jù)庫都可以后一步啦。還有很多不確定的,比如說,SESSION,COOKIE,都不知道會(huì)是個(gè)什么情況。所以,路還很長啊,都不知道能不能繼續(xù)堅(jiān)持下去。 今天記錄下,說不定下次看到這篇日志,又繼續(xù)了。轉(zhuǎn)載于:https://my.oschina.net/xiaochen/blog/77603
總結(jié)
以上是生活随笔為你收集整理的C语言开发fastcgi初探(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11个有关HTML5的事实
- 下一篇: MySQL查看表占用空间大小(转)