lwip之http服务器

通过移植lwip,用嵌入式设备构建一个http服务器。步骤如下:
准备工作:
1、下载一个网页文件。
2、下载winhex,用winhex打开网页文件,将网页文件转换成c数组。
具体操作如下:
Edit--->Copy All------>C Source
这样操作后,转换成的c数组就被复制到剪切板了。
打开一个记事本就可以将数组粘贴进去。
lwip相关操作:
在移植好lwip的系统中,定义
char indexdata1[] ={0x27, 0x74, 0x65, 0x78, 0x74, 0x2F, 0x6A, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
 0x27, 0x25, 0x33, 0x45, 0x25, 0x33, 0x43, 0x2F, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x25, 0x33,
 0x45, 0x22, 0x29, 0x29, 0x3B, 0x0D, 0x0A, 0x3C, 0x2F, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x3E,
..........................................................................
.......................................................................... 
 0x0D, 0x0A, 0x3C, 0x2F, 0x44, 0x49, 0x56, 0x3E, 0x3C, 0x2F, 0x42, 0x4F, 0x44, 0x59, 0x3E, 0x3C
}
char http_html_hdr[] =
"HTTP/1.0 200 OK\r\n\
Content-type: text/html\r\n\r\n";
主体c文件中:
int main()
{
硬件初始化
lwip初始化
IP4_ADDR(&gw, 192,168,1,1);
IP4_ADDR(&ipaddr, 192,168,1,60);
IP4_ADDR(&netmask, 255,255,255,0);
。。。。。。。。。。
。。。。。。。。。。
   struct netconn   *__pstConn, *__pstNewConn;
 __pstConn = netconn_new(NETCONN_TCP);///建立tcp的连接
        ///将建立的连接进行端口绑定
 netconn_bind(__pstConn, NULL, HTTP_PORT);  //HTTP_PORT,80端口
        //开始监听
 netconn_listen(__pstConn);
 while(1)
 {
          //接收外部来的连接
  __pstNewConn = netconn_accept(__pstConn);
          //
  process_connection(__pstNewConn);
  if (__pstNewConn == NULL)
   continue;
  netconn_delete(__pstNewConn);
               /// OSTimeDly(500);
              
 }
}
编译,下载。
连接好网线,在ie地址栏输入192.168.1.60
接着是漫长的等待。。。。。。。。。。。。。。
然后奇迹出现了:
效果图如下:
 
也可以通过tcp调试助手测试:
 
连接192.168.1.60的80端口,发送“GET”,tcp调试助手收到一连串的字符(即网页的源代码):
 
STM32是一款基于Cortex-M内核开发的微控制器系列,具有高性能、低功耗和丰富的外设接口,广泛应用于物联网等领域。而LWIP(Lightweight IP)是一款轻量级的TCP/IP协议栈,适用于嵌入式系统。 阿里云服务器是阿里巴巴集团提供的云计算服务平台,具有高可靠性、高可扩展性和灵活性。 在使用STM32与LWIP开发物联网应用时,可以借助LWIPTCP/IP协议栈实现STM32与阿里云服务器之间的通信。 首先,需要在STM32上配置LWIP协议栈,包括网络接口的初始化、IP地址的分配等。可通过参考LWIP文档提供的API函数进行配置。 然后,通过STM32的网络接口与阿里云服务器建立连接。可以使用LWIP提供的Socket API对服务器进行连接、发送和接收数据。 在与阿里云服务器通信时,可以根据需求选择TCP或UDP协议。TCP提供可靠的连接和流式传输,适用于数据传输要求高可靠性的场景;而UDP则提供简单的无连接传输,适用于实时性较强的场景。 在与阿里云服务器进行数据交互时,可以使用HTTP、MQTT等协议。HTTP协议可用于发送HTTP请求并接收服务器响应,适用于传输大量数据或进行通用数据交互;而MQTT协议适用于物联网场景,可实现设备与服务器之间的发布和订阅机制。 通过以上方式,可以实现STM32与阿里云服务器之间的通信,实现数据的上传、下发、远程控制等功能。同时,可以结合阿里云提供的云服务,如云数据库、云存储等,实现更多的物联网应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值