C语言开发fastcgi初探(一)

    这几天闲着没事干,虽然开学了,但是到下周才有课上。再者,研二了,也没啥课了,导师又不让我出去工作,我那个纠结啊。算鸟,那就自己折腾点东西玩玩吧。
    由于自己的本科的时候,一开始脑子就被驴给T了,学WEB开发去了,算到现在,WEB开发也3,4年了,擅长ASP.NET和PHP开发,数据库主要是三个,MSSQL,MYSQL和ACCESS。前端知识是必备的,基本的没有问题。其它方面也有涉略,如:PYTHON,SQLITE,MANGODB等。
    一直都想做得再底层一点,因为是WEB,再底层,无非就是到了TCP/IP这一层,如果到这一层了,那就该写WEB服务器了,目前还没这想法,估计也没那个心思去学习去写。再往上一点,就是写WEB服务器的接口,像IIS就有ISAPI和FASTCGI等。加上前段时间用PHP写了个网站,在网上也看了一个开源的C语言WEB程序(Raphters),再者,APACHE和LIGHTTPD,NGIX等都支持FASTCGI,最后就决定学着写FASTCGI开发。
    网上有个相应的包,可以在 http://www.fastcgi.com下载。封装了一些API,可以直接调用。如果想要再底层,那还是直接写个WEB服务器来得更直接。这个包用的是nmake编译,因为主要是在WIN下做开发,用NAMKE或MAKE等,总有那么点别扭。幸好VS自带了NMAKE的编译器,不像CMAKE,还得自己下包。
 
    把包下载下来之后,用 VS2012 x86 本机工具命令提示 找到解压的相应目录,进去后,NMAKE -F MAKEFILE.NT 即可。记得噢,用VS2012 x86 本机工具命令提示,这个工具,不要用直接用 命令提示符。如果想直接用命令提示符合,就将NMAKE这个编译器文件所在的路径,加式PATH中即可。编译成功之后,可以到examples\\echo\\release下,找到自带的DEMO所编译出来的echo.exe。但,如果直接双击打开,很遗憾,会提示出错,一看错误,就知道是什么原因,你懂的。到libfcgi\\Release,将libfcgi.dll,复制到windows目录下,就OK了。再运行echo.exe,就不会出错了。如果闪一下,就没有了,那就从命令提示符中运行吧。你懂的。
    接下来,就是配置到IIS中。我用的是WIN7(64位),自带的是IIS7.5,相对于IIS5/6来讲,配置FASTCGI就简单多了,网上一搜就有的哈,配置过PHP5.3及以上的话,应该会不陌生。和配置PHP的FASTCGI一样,将 请求路径改成:*,将 可执行文件选择echo.exe就OK了,就可以通过IIS访问了。
    到上面这一步之后,我才发现,跟python里面一个WEB框架--WEBPY(我没有玩过DJANGO,勿喷),处理请求方面很相似。感觉WEBPY,像是更高一层的封装,封装好了MVC,直接定义一个类,就可以访问。而现在这样不行,我觉得现在唯一的方法,就是根据path_info的不同,做个简单的router,至于M和V,那就算鸟,就像我用PHP一样,很反感MODEL。
 
    从配置,到现在花了两个下午的时间了,中间有时也很烦躁,可能是因为C语言太原始了。我想做个简单的字符串替换,才发现C语言里面没有这个样的函数(标准库,为了跨平台,木办法)。写一个int p_len=strlen(path); 报错,为嘛?p_len未定义,我又只得先int p_len;然后再用。偶滴神啊,我要疯的。
    还有,碰上个什么外部引用的什么鸟问题,一查才知道,没有将要用的包,在编译的时候加进去。神啊,我得自己写MAKEFILE和MAK文件,要偶的小命啊。
 
    其实Raphters,好像就是在这个包上封装出来的一个框架,采用的是CMAKE编译方式。我现在还是按自己的思路写,看啥时候,能写出个像样的DEMO,哈哈。
    目前的思路就是:通过判断path_info,做一个简单的路由。模版方面,先做个简单的字符串替换。数据库方面的话,得下个包用。数据库都可以后一步啦。还有很多不确定的,比如说,SESSION,COOKIE,都不知道会是个什么情况。所以,路还很长啊,都不知道能不能继续坚持下去。
 
    今天记录下,说不定下次看到这篇日志,又继续了。

转载于:https://my.oschina.net/xiaochen/blog/77603

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值