当前位置: 首页 > news >正文

什么可以用手机做网站什么样的网站容易做seo

什么可以用手机做网站,什么样的网站容易做seo,网站目录结构怎么做,宣讲家网站做四讲四有模范STM32 LWIP UDP通信 前言设置 IP 地址UDP函数配置实验结果单播发送#xff0c;一对一发送广播发送#xff0c;一对多发送 可能遇到的问题总结 前言 之前没有接触过网络的通信#xff0c;工作需要 UDP 接收和发送通信#xff0c;在网上没有找到一对一、一对多的相关例程一对一发送广播发送一对多发送 可能遇到的问题总结 前言 之前没有接触过网络的通信工作需要 UDP 接收和发送通信在网上没有找到一对一、一对多的相关例程于是在技术总监对我的指导用正点原子板子给的例程是从官方的程序修改的实现了Lwip UDP通信一对一、一对多的发送程序可以随便指定发送ip地址、发送端口号以及发送十六进制或是 ASCII码都可以本人测试STM32F1系列和F4系列都没问题十分的方便。 设置 IP 地址 假设设置STM32单片机IP为:192.168.1.130 lwipx-ip[0]192; lwipx-ip[1]168;lwipx-ip[2]1;lwipx-ip[3]130;假设设置我的电脑的IP为:192.168.1.36 UDP函数配置 STM32单片机上电不需要每次手动按键调节设置远端IP地址ip地址、端口号 // udp_demo_set_remoteip();//先选择IPLCD_Clear(WHITE); //清屏POINT_COLORRED; //红色字体LCD_ShowString(30,30,200,16,16,WARSHIP STM32F103);LCD_ShowString(30,50,200,16,16,UDP Test);LCD_ShowString(30,70,200,16,16,ATOMALIENTEK); LCD_ShowString(30,90,200,16,16,KEY0:Send data); LCD_ShowString(30,110,200,16,16,KEY_UP:Quit); LCD_ShowString(30,130,200,16,16,KEY1:Connect);tbufmymalloc(SRAMIN,200); //申请内存if(tbufNULL)return ; //内存申请失败了,直接退出sprintf((char*)tbuf,Local IP:%d.%d.%d.%d,lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);//服务器IPLCD_ShowString(30,150,210,16,16,tbuf);sprintf((char*)tbuf,Local Port:%d,UDP_DEMO_PORT);//服务器端口号LCD_ShowString(30,170,210,16,16,tbuf); // sprintf((char*)tbuf,Remote IP:%d.%d.%d.%d,lwipdev.remoteip[0],lwipdev.remoteip[1],lwipdev.remoteip[2],lwipdev.remoteip[3]);//远端IP // LCD_ShowString(30,170,210,16,16,tbuf); // sprintf((char*)tbuf,Remote Port:%d,UDP_DEMO_PORT);//客户端端口号 // LCD_ShowString(30,190,210,16,16,tbuf);POINT_COLORBLUE;LCD_ShowString(30,210,210,16,16,STATUS:Disconnected); UDP客户端连接不需要指定IP地址和端口号的服务器 udppcbudp_new();if(udppcb)//创建成功{ IP4_ADDR(rmtipaddr,lwipdev.remoteip[0],lwipdev.remoteip[1],lwipdev.remoteip[2],lwipdev.remoteip[3]);errudp_bind(udppcb,IP_ADDR_ANY,UDP_DEMO_PORT);//绑定本地IP地址与端口号if(errERR_OK) //绑定完成{udp_recv(udppcb,udp_demo_recv,NULL);//注册接收回调函数 LCD_ShowString(30,210,210,16,16,STATUS:Connected );//标记连接上了(UDP是非可靠连接,这里仅仅表示本地UDP已经准备好)udp_demo_flag | 15; //标记已经连接上POINT_COLORRED;LCD_ShowString(30,230,lcddev.width-30,lcddev.height-190,16,Receive Data:);//提示消息 POINT_COLORBLUE;//蓝色字体}else res1; }else res1;UDP回调函数 void udp_demo_recv(void *arg,struct udp_pcb *upcb,struct pbuf *p,struct ip_addr *addr,u16_t port) {u32 data_len 0;struct pbuf *q;if(p!NULL) //接收到不为空的数据时{memset(udp_demo_recvbuf,0,UDP_DEMO_RX_BUFSIZE); //数据接收缓冲区清零for(qp;q!NULL;qq-next) //遍历完整个pbuf链表{//判断要拷贝到UDP_DEMO_RX_BUFSIZE中的数据是否大于UDP_DEMO_RX_BUFSIZE的剩余空间如果大于//的话就只拷贝UDP_DEMO_RX_BUFSIZE中剩余长度的数据否则的话就拷贝所有的数据if(q-len (UDP_DEMO_RX_BUFSIZE-data_len)) memcpy(udp_demo_recvbufdata_len,q-payload,(UDP_DEMO_RX_BUFSIZE-data_len));//拷贝数据else memcpy(udp_demo_recvbufdata_len,q-payload,q-len);data_len q-len; if(data_len UDP_DEMO_RX_BUFSIZE) break; //超出TCP客户端接收数组,跳出 }upcb-remote_ip*addr; //记录远程主机的IP地址upcb-remote_portport; //记录远程主机的端口号lwipdev.remoteip[0]upcb-remote_ip.addr0xff; //IADDR4lwipdev.remoteip[1](upcb-remote_ip.addr8)0xff; //IADDR3lwipdev.remoteip[2](upcb-remote_ip.addr16)0xff;//IADDR2lwipdev.remoteip[3](upcb-remote_ip.addr24)0xff;//IADDR1 udp_demo_flag|16; //标记接收到数据了pbuf_free(p);//释放内存}else{udp_disconnect(upcb); LCD_Clear(WHITE); //清屏POINT_COLOR RED;LCD_ShowString(30,30,200,16,16,WARSHIP STM32F103);LCD_ShowString(30,50,200,16,16,UDP Test);LCD_ShowString(30,70,200,16,16,ATOMALIENTEK);POINT_COLORBLUE;LCD_ShowString(30,90,200,16,16,Connect break); LCD_ShowString(30,110,200,16,16,KEY1:Connect);udp_demo_flag ~(15); //标记连接断开} }实验结果 单播发送一对一发送 if(key KEY0_PRES)//KEY0按下了,发送数据{u8 remote_add[4] {192,168,1,36}; //发送对端的ip地址u8 send_str_data[] hello word!; //要发送的信息Unicast_Send(remote_add,send_str_data,0,8089);//单播发送}我按键按下KEY0_PRES按了三次发送单播发送的端口号为8089用 Wireshark 抓包 也可以用网络调试助手查看是否收到STM32发来的数据刚刚前面说过我设置自己的电脑ip192.168.1.36电脑本机端口号设置和STM32单片机发送数据端口号一致才能收到数据 广播发送一对多发送 if(key KEY2_PRES)//KEY2按下了,发送数据{u8 send_data[8] {0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8}; //要发送的信息Broadcast_Send(send_data,8,8080);//广播发送}我按键按下KEY2_PRES按了两次发送广播发送的端口号为8080用 Wireshark 抓包 也可以用网络调试助手查看是否收到STM32发来的数据电脑本机端口号端口号设置和STM32单片机发送数据端口号一致才能收到数据因为我刚刚设置STM32广播发送的端口号是8080所以本地端口号8089是不会收到数据的重新打开一个网络调试助手(端口号设置为8080)此时就可以正常收到数据了 接收是正常的我就不演示了没有 TFT显示屏 可以使用串口来查看单片机是否收到别的单片机发来的数据 if(udp_demo_flag16)//是否收到数据?{LCD_Fill(30,250,lcddev.width-1,lcddev.height-1,WHITE);//清上一次数据LCD_ShowString(30,250,lcddev.width-30,lcddev.height-230,16,udp_demo_recvbuf);//显示接收到的数据 printf(接收到数据%s\r\n,udp_demo_recvbuf);udp_demo_flag~(16);//标记数据已经被处理了.} 可能遇到的问题 移植不成功不会将F1例程移植到F4板子上之类的问题移植不会修改程序没有设置自己的电脑ip地址程序、STM32单片机、网线都没有问题但电脑没有收到包此时检查电脑的防火墙端口号不一致也收不到包的 (这一点很重要)端口号要一致才能收发数据其它等等问题 总结 本人也花了大量时间去研究如需要源码支付30元提供技术服务加企鹅号970484728加企鹅时备注STM32 UDP不需要源码的也不强求记录下自己的学习过程我只是刚入门的新手知道有许多会的大佬不喜勿喷欢迎各位小伙伴一起前来讨论。
http://www.w-s-a.com/news/173964/

相关文章:

  • 插件素材网站新站seo优化快速上排名
  • 网站注销主体填写原因asp响应式h5网站源码下载
  • 电商类网站模板下载济南市建设网官网
  • 万户网络做网站如何采集器wordpress
  • 襄阳网站建设企业查看 wordpress 插件
  • 网站地址申请京东联盟怎么做网站
  • 三亚市城乡建设局网站网站口碑营销
  • 图书租借网站 开发企业网站搜索优化外
  • 新乡个人网站建设哪家好免费的图片做视频在线观看网站
  • 洛阳工程建设信息网站山西响应式网页建设哪里好
  • 企业网站建设市场的另一面wordpress分类插件
  • 网站建设名头公司展厅装修
  • 小型购物网站开发费用郑州企业网站模板建站
  • 个体商户建自己的网站做销售建设积分兑换官方网站
  • 网站建设与维护培训网页制作专业用语
  • 建站特别慢wordpress网页制作与设计项目策划书
  • 视频制作素材免费网站头像制作在线生成器
  • 网站建设是不是可以免费建站广州做网站 信科网络
  • 闸北区网站设计叫别人做网站后怎么更改密码
  • 为什么想做网站运营建设工程教育网站
  • 站长基地百度推广整体优化网站
  • 门窗 东莞网站建设wordpress外链论坛
  • 安徽省建设部网站官网还能用的wap网站
  • 企业网站设计开发网站关键词优化seo
  • 郑州高档网站建设台州网站建设推广
  • 广东省建设信息港网站WordPress手机缩略图设置
  • 优秀网站主题平顶山专业做网站公司
  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好