12016|18

92

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

lm3s8962上的RT-Thread连载——简单的HTTP服务器 [复制链接]

本来是打算从内核开始写起,到网络,文件系统,GUI等一系列连载,发现自己写东西的速度太慢,按这样的速度也不知道什么时候才能写到网络,而LM3S8962的精华部分在于网络,所以干脆先从网络部分的内容开始,后面间隔的插入内核等部分的内容。先预告下下一节内容——用NETIO来测试网络速度

RT-Thread网络实验1 简单的HTTP服务器

实验目的:

²        了解RT-Thread的网络组件,了解LWIP的基本API使用;

²        了解HTTP/1.0协议的基本功能

²        掌握使用LwIP API实现一个实际地应用

 

实验设计:

设计一个简单的web服务器应用,它由单一线程组成,负责接收来自网络的连接,响应HTTP请求,以及关闭连接。

在这个应用中的线程lw_thread()负责必要的初始化及连接设置工作;连接设置过程是一个相当简单的例子,显示了如何使用最小限度API初始化连接。使用netconn_new()函数建立一个连接后,这个连接被绑定在TCP 80端口并且进入监听(LISTEN)状态,等待连接。一旦一个远程主机连接进来,netconn accept()函数将返回连接的netconn结构。当这个连接已经被process _connection() 函数处理后,必须使用netconn_delete() 函数删除这个netconn

process_connection()函数,调用netconn_recv()函数接收一个netbuf,然后通过netbuf_data()函数获取一个指向实际的请求数据指针。这个指针指向netbuf中的第一个数据片断,并且我们希望它包含这个请求。这并不是一个不合实际的想法,因为我们只读取这个请求的前七个字节。如果我们想读取更多的数据,简单的方法是使用netbuf_copy()函数复制这个请求到一个连续的内存区然后在那里处理它。

这个简单的web服务器只响应HTTP GET对文件“/”的请求,并且检测到请求就会发出响应。这里,我们既需要发送针对HTML数据的HTTP头,还要发送HTML数据,所以对netconn_write()函数调用了两次。因为我们不需要修改HTTP头和HTML数据,所以我们将netconn_write()函数的flags参数值设为NETCONN NOCOPY以避免复制。

最后,连接被关闭并且process_connection()函数返回。连接结构也会在这个调用后被删除。

 

源程序说明:

更多内容,见PDF文档,例程源码,见附件

[ 本帖最后由 shaolin 于 2010-11-19 22:48 编辑 ]

RT-Thread网络实验1-简单的HTTP服务器.pdf

154.31 KB, 下载次数: 463

文档

rt-thread-httpserver.rar

1.15 MB, 下载次数: 794

例程源码

最新回复

请问大神,有后续章节嘛...新手学习RT-THREAD,希望有好一点的教程,手上有LM3s8962开发板。感觉这个系列的教程很不错。期待后续...  详情 回复 发表于 2013-3-24 10:01
点赞 关注

回复
举报

928

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 
下载试试。
谢谢分享。
 
个人签名动手创造个性自我

https://home.eeworld.com.cn/?95709
 

回复

36

帖子

6

TA的资源

一粒金砂(中级)

板凳
 
学习学习
 
 
 

回复

849

帖子

0

TA的资源

纯净的硅(高级)

4
 
MARK
 
个人签名只有想不到,没有做不到。
 
 

回复

1万

帖子

16

TA的资源

版主

5
 

谢谢,下来看下

:P
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

27

帖子

0

TA的资源

一粒金砂(初级)

6
 
  真好 太好了 正在学习
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

7
 
来学习了
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(初级)

8
 
谢谢!!! 好文档1
 
 
 

回复

4138

帖子

0

TA的资源

五彩晶圆(中级)

9
 
下来看看学习
 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

10
 
学习 + 支持。。。。。。。。
 
 
 

回复

273

帖子

0

TA的资源

纯净的硅(中级)

11
 
谢谢分享
 
 
 

回复

273

帖子

0

TA的资源

纯净的硅(中级)

12
 
跟着楼主后面摸索呢,我去下载了SVN上的例子,如果配套些解释的文档就更好了,入门快些,谢谢
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

13
 
多谢楼主分享
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(初级)

14
 

谢谢正在学习中!!!

谢谢正在学习中!!!

 
 
 

回复

96

帖子

0

TA的资源

一粒金砂(中级)

15
 
very good !
thanks.
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(中级)

16
 
初学者。。。。支持。。里面的例子在哪里下载的啊??
 
 
 

回复

45

帖子

0

TA的资源

一粒金砂(中级)

17
 
太强了,学习~~~~~~
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

18
 

设计一个简单的web服务器应用,它由单一线程组成,负责接收来自网络的连接,响应HTTP请求,以及关闭连接。

 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(中级)

19
 
请问大神,有后续章节嘛...新手学习RT-THREAD,希望有好一点的教程,手上有LM3s8962开发板。感觉这个系列的教程很不错。期待后续...
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表