Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread发布
RTT的web困惑
发布于 2013-04-02 17:00:30 浏览:3516
订阅该版
有的电脑可以正常工作,有的不可以,老卡,一点不流畅,网络调试助手正常!不知道有什么玄妙啊 ``` const char status200[] = "HTTP/1.0 200 OK "; const static char http_html_hdr[] = "Content-type: text/html "; const char openlight_html[]= "" " " "
" "
开灯页面
" " " " " " " "
开灯页面
" "
" "
" "
厨房
" "
客厅
" "
卧室
" "
厕所
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "" ""; const char HTML[]= "" " " "
" "
咕嘎
" "" "" "
实例
" "
[开灯](openlight.html) " " [关灯](closelight.html)
" "
[温度获取](temp.html) " "
" "" "" ; void Tcp_Sever(void *parameter) { static const char send_data[]="恭喜你已经和小ARM菜菜监听的服务器连接成功!! " ; char *Rec_Data; u32_t Sin_Size; int Sock,Connected,Bytes_Rec; struct sockaddr_in Sever_addr,Client_addr; rt_bool_t Stop=RT_FALSE; Rec_Data = rt_malloc(2048); if( Rec_Data==RT_NULL) { rt_kprintf("内存堆无空间,分配失败 "); return; } if((Sock = socket(AF_INET,SOCK_STREAM,0))== -1) { rt_kprintf("创建SOCKET失败 "); rt_free( Rec_Data); return; } Sever_addr.sin_family=AF_INET; Sever_addr.sin_port=htons(80); Sever_addr.sin_addr.s_addr=INADDR_ANY; rt_memset(&(Sever_addr.sin_zero),8,sizeof(Sever_addr.sin_zero) ); if(bind(Sock,(struct sockaddr *)&Sever_addr,sizeof(struct sockaddr ))== -1) { rt_kprintf("绑定SOCKET失败 "); rt_free( Rec_Data); return; } if(listen(Sock,5)==-1) { rt_kprintf("listen error "); rt_free( Rec_Data); return; } rt_kprintf(" TCP Sever Waiting for Client on port 8080 ..... "); while(Stop != RT_TRUE) { Sin_Size = sizeof(struct sockaddr_in); Connected =accept(Sock,(struct sockaddr *)&Client_addr,&Sin_Size); rt_kprintf(" I got a connection from (%s,%d) ",inet_ntoa(Client_addr.sin_addr),ntohs(Client_addr.sin_port)); // send(Connected,send_data,strlen(send_data),0); while(1) { Bytes_Rec = recv(Connected,Rec_Data,1024,0) ; if(Bytes_Rec < 0) { lwip_close(Connected); break; } // Rec_Data[Bytes_Rec] = ' '; if (strncmp(Rec_Data, "GET", 3) == 0 ) { /* 如果接收的是exit,则关闭整个服务端*/ if( strncmp(strstr(Rec_Data, "openlight.html"), "openlight.html", 14) == 0 ) { send(Connected,status200,strlen(status200),0); send(Connected,http_html_hdr,strlen(http_html_hdr),0); send(Connected,openlight_html,strlen(openlight_html),0); lwip_close(Connected); rt_kprintf("HTTP CHIRD OVER "); } else send(Connected,status200,strlen(status200),0); send(Connected,http_html_hdr,strlen(http_html_hdr),0); // send(Connected,indexdata,strlen(indexdata),0); send(Connected,HTML,strlen(HTML),0); lwip_close(Connected); rt_kprintf("HTTP MAIN OVER "); break; } rt_kprintf("RECIVED DATA = %s ",Rec_Data); send(Connected,Rec_Data,Bytes_Rec,0); } } } void TCP_Sever_net(void*p) { struct netconn *conn,*newconn; struct netbuf *inbuf; char *rq; u16_t len; conn = netconn_new(NETCONN_TCP); netconn_bind(conn,NULL,80); netconn_listen(conn); while(1) { newconn = netconn_accept(conn); inbuf =netconn_recv(newconn) ; netbuf_data(inbuf,&rq,&len); // netconn_write(newconn,rq,len,NETCONN_NOCOPY); if (strncmp(rq, "GET", 3) == 0 ) { netconn_write(newconn,status200,strlen(status200),NETCONN_NOCOPY); netconn_write(newconn,http_html_hdr,strlen(http_html_hdr),NETCONN_NOCOPY); if( strncmp(strstr(rq, "openlight.html"), "openlight.html", 14) == 0 ) { netconn_write(newconn,openlight_html,strlen(openlight_html),NETCONN_NOCOPY); netconn_close(newconn); } else { //netconn_write(newconn,status200,strlen(status200),NETCONN_COPY); // netconn_write(newconn,http_html_hdr,strlen(http_html_hdr),NETCONN_COPY); netconn_write(newconn,HTML,strlen(HTML),NETCONN_NOCOPY); netconn_close(newconn); } } //netconn_delete(conn); } } ```
查看更多
1
个回答
默认排序
按发布时间排序
撰写答案
登录
注册新账号
关注者
0
被浏览
3.5k
关于作者
小ARM菜菜
这家伙很懒,什么也没写!
提问
10
回答
55
被采纳
0
关注TA
发私信
相关问题
1
RT-Thread单内核v0.2.2正式版
2
[发布] RT-Thread RTOS v0.2.3版本
3
RT-Thread 0.3.0 beta
4
RT-Thread/STM32 0.3.0 RC1发布
5
RT-Thread/LM3S 0.3.0 RC1版发布
6
建议弄个MIPS版本的。龙芯上用。
7
开源实时操作系统RT-Thread 0.3.0正式版发布
8
关于RT-THREAD的UDP讨论
9
这里是BUG回报板块!
10
rt-thread stm32 0.3.0 rc1 网络问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
env中添加lvgl软件包后,keil编译包--c99错误
2
【NXP-MCXA153】 定时器驱动移植
3
GD32F450 看门狗驱动适配
4
【NXP-MCXA153】看门狗驱动移植
5
RT-Thread Studio V2.2.9 Release Note
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
freemodbus
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
keil_MDK
msh
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
7
个答案
2
次被采纳
a1012112796
18
个答案
1
次被采纳
红枫
5
个答案
1
次被采纳
Ryan_CW
5
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
本月文章贡献
YZRD
3
篇文章
6
次点赞
catcatbing
3
篇文章
6
次点赞
lizimu
2
篇文章
10
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部