Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread发布
RTT的web困惑
发布于 2013-04-02 17:00:30 浏览:3111
订阅该版
有的电脑可以正常工作,有的不可以,老卡,一点不流畅,网络调试助手正常!不知道有什么玄妙啊 ``` 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[]= "" " " "
" "
咕嘎
" "" "" "
实例
" "
开灯
" "
关灯
" "
温度获取
" "
" "" "" ; 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.1k
关于作者
小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
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
Rt-thread 排坑(持续更新)
2
rt-thread与linux运行支持的平台对比
3
RT-Thread nano移植到恩智浦s32k144,S32 Design Studio使用的代码
4
RT-Thread开发GD32F450 添加adc外设
5
RT-Thread Smart qemu-virt64-riscv 用户态 userapps 的编译与运行
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
FinSH
Bootloader
ART-Pi
CAN总线
Hardfault
文件系统
USB
DMA
RT-Thread
线程
SCons
RT-Thread Nano
stm32
MQTT
ota
ESP8266
RTC
UART
rtthread
packages_软件包
freemodbus
rt-smart
I2C
WIZnet_W5500
flash
cubemx
FAL
定时器
BSP
AB32VG1
PWM
ADC
msh
SDIO
socket
keil
Debug
C++_cpp
LVGL
中断
编译报错
SFUD
SMP
MicroPython
本月问答贡献
宇宙码蚁
41
个答案
5
次被采纳
xiaorui
25
个答案
4
次被采纳
Ryan_CW
6
个答案
4
次被采纳
lchnu
12
个答案
3
次被采纳
张世争
4
个答案
3
次被采纳
本月文章贡献
张世争
6
篇文章
13
次点赞
YZRD
5
篇文章
8
次点赞
快乐小鸟
4
篇文章
4
次点赞
RTT_逍遥
3
篇文章
24
次点赞
recan
2
篇文章
17
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部