热度 28
2012-6-6 09:28
1673 次阅读|
0 个评论
大家好,前天为大家分享了WIZnet的用户手册 如何用W7100A实现HTTP客户端 (一),今天继续为大家分享第二部分。 如何用W7100A实现HTTP客户端 (一)请参考:http://bbs.ednchina.com/BLOG_ARTICLE_3004568.HTM 2.3 演示 2.3.1 设置超级终端机(Hyper terminal) 如下所示设置超级终端机(Hyper Terminal),向W7100A输入URL并且显示调试结果。 超级终端机(Hyper Terminal)的设置 2.3.2 输入URL 示范. 1 2.3.3 DNS, HTTPc和输出Doc 示范. 2 2.3.4 串口输出结果 (a)解析的数据 (b)网页 示范. 3 3. HTTP 客户端的实现 本示例中的HTTP客户端在TCP客户端模式下执行。TCP客户端模式通过连接到服务器工作,并且在建立连接之后可以发送/接收数据。更多的详细信 息,请参考网络嵌入式MCU W7100A数据手册的9.2.1节或者文档‘如何使用W7100A实现TCP通信’。图4为HTTP客户端的程序流程图。 图4 HTTPc流程图 下面的代码显示了HTTPc下的main.c函数。HTTPc将URL解析为URL域和URL路径。当DNS获得服务器IP时,HTTPc就会调 用。上图中虚线所示部分为HTTPc连接到服务器的流程。在连接建立之后,请求信息会被发送。服务器接收到请求信息之后将响应请求并且发送数据。 (注意) 在这个应用中,使用了一个简单的算法来解析接收到的数据。为了能够有区别地解析接收到的数据,用户可以修改解析部分程序代码。 main.c /* Scanf URL */ 95: /* Do DNS Client */ 96: memset(HTTPs_IP,0,sizeof(HTTPs_IP)); 97: done_dns = dns_query(s, url_dn, HTTPs_IP); 99: while( done_dns == 1 ){ // on success, done_dns is '1' 100: /* ouput for LCD : DSN SERVER IP */ 101: evb_set_lcd_text(0,"DNS SERVER IP "); 102: sprintf(str,"%.3bu.%.3bu.%.3bu.%.3bu", 103: HTTPs_IP , HTTPs_IP , HTTPs_IP , HTTPs_IP ); 104: evb_set_lcd_text(1,str); 106: /* Do HTTP Client */ 107: done_http = http_client(s, HTTPs_IP, url_path, data_buf); 108: if(done_http) { // on success, done_dns is not '0' /* parsed Part */ /* print parsed data */ } main.c代码