如何用C语言开发一个通用web服务器?

如何用C语言开发一个通用web服务器?,第1张

用C语言开发WEB,可以用C++BUILDER6,称ISAPI,一般人可能做不起来,有点麻烦;

唯一是速度很快,别人看不到源码,掌握了编程套路,也可以开发应用;

缺点:

1。不是解释性语言,做的WEB调试非常麻烦;现在做WEB开发的,用C#、JAVA较多;都是解释性的语言;

2。因为是.DLL的二进制代码,一般商业网站不给予运行的环境,因为网站服务器会被你可能搞瘫,安全性得不到保障;所以,你得自备网页服务器;

3。得不到技术支持,因为没几个人会这种开发;

部署一个BS的应用,一般是有web服务器、应用服务器、数据库服务器,至于文件服务器可以放在应用服务器,如果你开发的系统文件是直接存放在数据库的,那么不需要用到文件服务器。

一般情况下,非大型企业级的应用,web服务器和应用服务器不需要分开,使用tomcat部署即可,tomcat里面既可做应用服务器,也内置了web服务器实现用户请求转发。

至于具体如何部署,你可以去baidu搜索下tomcat部署方法即可。

如果你要说web服务器和应用服务器的区别,通俗来说就是web服务器主要处理静态的请求和转发请求及反馈结果,而应用服务器是处理动态请求。

服务器所用到的知识:

TCP/UDP,最基本的

并发——你可以选择使用select、poll,或者是多线程、多进程

如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,

如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题

你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题

你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性

还有其他很多需要你考虑的,以上都是指在Linux下的C++,本人对windows C++不了解

推荐书目:UNIX高级环境编程,UNIX网络编程,卷一。C++只不过是你使用这些技术的方式,不管你使用C还是C++,你都可以使用从这两本书中学习到很多有用的知识,但是不能保证你就可以写出高质量的服务器程序。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/419305.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-24
下一篇2023-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存