嵌入式linux简单Web服务器 之 课设一周总结
来源:互联网 发布:成都富盈瑞吉 知乎 编辑:程序博客网 时间:2024/05/17 12:25
开学前两周硬件实验,虽说是硬件,但软件的味道算更浓些。选了个题目——嵌入式linux简单Web服务器,算是很经典的了,源码什么的都有,只是一直想学学网络编程。之前学MFC的简单接触了些,简单的层面上说是没多少区别的了。至于嵌入式板接触不少了,就相当于linux下c编程,只是编译器用得没有vs爽~ 用eclipse写的,linux更懒开了,开也不开真机的,而是虚拟机(实盘安装,虚拟真机都可双开),后来觉得慢干脆在Windows装了个cywin,移植了上来~直接在Windows编了,更爽了~~ 总之不是不喜欢linux,只是linux少了很多常用的东西,只拿来编程就太枯燥了.
恩,说说主题吧,好像跑题了,汗啊……源码仿造了经典例子httpd写的,算是国人改的吧。那源码问题不是没有……内存泄漏什么的,有点汗,不过03年挺古老的现在还有那么大的参考价值也算不错了~
重写一下,不过挺懒,ctrl+c, ctrl+v多。还参照网上的多路复用改了一下,改成多路复用的了。传说可以并发?不过好像改了没多大效果?或许是概念不清,多路复用原理没理解很清楚。
问题如下:
用自写的暴力访问器来访问,新accept的client socket都是同一个值,不知道为什么。按理说不应该的呀。这样就有不是并发的感觉了,因为每次请求都是被处理完了的才到下一个,没有体现得并发性。除非因为本地访问是太快了,导致这样。但是慢的又不好测试,总不能让我把一个网页做成好几十M的吧?…
不过也发现可能是另一个原因,每一次新accept的client socket只请求一个文件,那么,而多路复用是以传送单个文件完毕来作为轮换指标的,这样一次轮换就处理完了一个socket。而一个网页上有多个文件(图片、html等),这样就可以轮流处理请求?这才是多路复用的本质思想?我倒是没注意到不同机子访问时有没有在请求文件时是轮流处理的。但如果真这样用不用多路复用不是一样的吗?我直接一个while(1)得了。
另外一个想不通的问题是,阻塞传输是什么时候被阻塞的? accept时? TCP协议下对client socket写东西时,调用写文件函数都是立即返回的吗?不然多路复用的核心函数select怎么能去收集这些信息?——如果是对client socket写东西时是处理完了程序才继续执行,那么select还有它的“判断IO写入完成才返回”功效? 早都写完了…更更不解的地方是,如果在select之前,socket的IO写入就完成了,那么它还会在FD_SET里吗? select好像很神奇的样子,《linux函数大全》居然没有写清楚…都意识流的…网上也是,关于多路复用的代码怎么样都有,天花乱坠的,我是昏花了……
好了,不说了,代码如下,希望熟悉多路复用的大侠能给我解惑一下(关于多路复用的代码在WaitForRequest()里)~不胜感谢……
- 嵌入式linux简单Web服务器 之 课设一周总结
- 嵌入式linux web服务器
- 【嵌入式Linux学习七步曲之第二篇 交叉开发环境】SuSe11.1 上架设NFS服务器
- 【嵌入式Linux学习七步曲之第二篇 交叉开发环境】SuSe11.1 上架设NFS服务器
- 在 Ubuntu Linux 上架设Web服务器
- 操作系统课设总结--简单的linux文件仿真系统
- 【嵌入式Linux学习七步曲之第二篇 交叉开发环境】FC6 上架设TFTP服务器,Transfer timed out
- 【嵌入式Linux学习七步曲之第二篇 交叉开发环境】FC6 上架设TFTP服务器,Transfer timed out
- 在Linux上架设支持JSP+PHP的Web服务器
- 在Linux上架设支持JSP+PHP的Web服务器
- 在Ubuntu Linux 上架设Web服务器详解
- 在Linux上架设支持JSP+PHP的Web服务器
- 简单web服务器学习总结
- 嵌入式Linux中的Web服务器应用
- 嵌入式Linux WEB服务器整体设计
- (web服务器)到嵌入式Linux系统
- 嵌入式Web服务器学习之HTTP协议
- linux C学习之实现简单的web服务器
- 视频编解码器
- 致转载的博友们
- QT怎么给一个文件设置读写权限
- Meego的诞生
- wifi设计原理(源码分析)
- 嵌入式linux简单Web服务器 之 课设一周总结
- 一点一滴学习IT日语12
- Visual Studio 2010中文旗舰版及Visual Assist X插件10.6.1823破解版
- 一点一滴学习IT日语13
- 一点一滴学习IT日语14
- Quickpass 000-379 Exam
- 台达EX2 PLC通讯错误
- 你应该知道的 8个Java 的领军人物 - CSDN.NET - CSDN资讯
- vb.net播放avi动画