stm32如何将stm32 udp 服务器器传过来的数据包合并

将一个网络数据传输到服务器并在浏览器端显示出来需要如何去做,这个服务器是怎么做出来的,是一个编程后_百度知道
将一个网络数据传输到服务器并在浏览器端显示出来需要如何去做,这个服务器是怎么做出来的,是一个编程后
将一个网络数据传输到服务器并在浏览器端显示出来需要如何去做,这个服务器是怎么做出来的,是一个编程后的程序,还是单独的一个主机
我有更好的答案
很简单,如果你会任何一种服务器语言就会觉得很简单。实际上只需要使用表单或者ajax技术就行。表单技术,使用html的&form&标签,指定action,例如我使用的是php语言,指定action为result.php,表单里面的内容就会发送到result.php这个脚本,直接进行处理输出就行了。ajax技术,使用html加上javascript,利用XMLHttpRequest(),send()就行了使用jquery的ajax技术,篇幅有限,不讲这个二者区别在于是否异步,也就是是否需要打开新页面。推荐使用第一种。
你好,可以详细说说吗,我就是刚刚学了一些js,以前有c,c++基础,现在想要自己做一个我都不知道是不是服务器的东西,我有一个硬件可以收集信息并且通过2g,3g,gprs, 等传送数据,我想制作一个服务器去接受数据,并且在人用浏览器访问这个地址是显示一个html页面,显示数据,非常感谢你能为我解答,我是一个学生,新手,万分感谢
好的,不用谢。首先,建立一个html文件,输入以下样例代码:&html&&body&&form&action=&/example/html/form_action.php&&method=&get&&&&&p&First&name:&&input&type=&text&&name=&fname&&/&&/p&&&&p&Last&name:&&input&type=&text&&name=&lname&&/&&/p&&&&input&type=&submit&&value=&Submit&&/&&/form&&p&请单击确认按钮,输入会发送到服务器上名为&&form_action.php&&的页面。&/p&&/body&&/html&然后,你需要在你的服务器上面建立一个php文件,样例代码如下:&?php&&&&$_Firest_Name&=&$_GET['fname'];&&&&$_Last_Name&=&$_GET['lname'];//两个超级变量,你如果不了解php,需要学习,php和c很像,只是不需要申明类型,这一点和js很像,变量加个$就行。&&&&exho&&&p&First&Name&is&$_First_Name&/p&&/&br&&;&&&&echo&&&p&Last&Name&is&$_Last_Name&/p&&;?&然后打开那个html文件并且输入数据的时候,点击按钮之后,就会在页面显示你输入的数据。你会说,这不是js就能办到的吗?对的,但是这是通过服务器返回之后的。这是表单方法,也就是第一种方法,很简单。但需要一定的php基础。以上例子必须在服务器环境下运行,如果没有服务器环境,建议使用appach—+php环境。另外,可以将php更换为asp语言,使用微软提供的iis就可以了
非常感谢!!!
对了,忘了问了,这个是只能在作为服务器的电脑上访问还是可以通过互联网访问
采纳率:70%
来自团队:
属于那个,游戏私服还是?
就是我自己一个小的收集硬件信息的
在服务器里面或者传送到网盘里面
这个服务器搭建需要怎么做
看你电脑配置问题,必须要外网支持
请问你是it人员?你对这些很懂吗,如果是的可以加个好友吗?有些问题想请教你一下
为您推荐:
其他类似问题
网络数据传输的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。串口中怎样接收一个完整数据包的解析
这里以串口作为传输媒介,介绍下怎样来发送接收一个完整的数据包。过程涉及到封包与解包。设计一个良好的包传输机制很有利于数据传输的稳定性以及正确性。串口只是一种传输媒介,这种包机制同时也可以用于SPI,I2C的总线下的数据传输。在单片机通信系统(多机通信以及PC与单片机通信)中,是很常见的问题。
一、根据帧头帧尾或者帧长检测一个数据帧
1、帧头+数据+校验+帧尾
这是一个典型的方案,但是对帧头与帧尾在设计的时候都要注意,也就是说帧头、帧尾不能在所传输的数据域中出现,一旦出现可能就被误判。如果用中断来接收的话,程序基本可以这么实现:
un//表示是否处于一个正在接收数据包的状态
unsi//是否接收到一个完整的数据包标志
unsigned char rxbuf[100];//接收数据的缓冲区
void UartHandler()
tmpch = UARTRBR;
if(tmpch 是包头)
//检测是否是包头
recstatu = 1;
packerflag = 0;
if(tmpch是包尾)
//检测是否是包尾
recstatu = 0;
packerflag = 1;
//用于告知系统已经接收到一个完整的数据包
if(recstatu ==1)
//是否处于接收数据包状态
rxbuf[ccnt++] =
上面也就是接收一个数据包,但是再次提醒,包头和包尾不能在数据域中出现,一旦出现将会出现误判。另外一个。数据的校验算法是很必要的,在数据传输中,由于受到干扰,很难免有时出现数据错误,加上校验码可在发现数据传输错误时,可以要求数据的另一方重新发送,或是进行简单的丢弃处理。校验算法不一定要很复杂,普通的加和,异或,以及循环冗余都是可以的。我上面的接收程序在接收数据时,已经将包头和包尾去掉,这些可以根据自己的需求加上,关键是要理解原理。
上述包协议出现了以下的几种变种:
1.1 帧头+数据长度+数据+校验值
1.2包长+校验值
上面两种其实都是知道了数据包的长度,然后根据接收字节的长度来判断一个完整的数据包。例如,定义一个数据包的长度为256字节,那我们就可以一直接收,直到接收到256个字节,就认为是一个数据包。但是,会不会存在问题呢?比如说从机向主机发送数据,发送了一半,掉电,重启,开机后继续发送,这很明显接收到的数据就不对了,所以此时很有必要定义一个超限时间,比如我们可以维护下面这样的一个结构体。
成员变量rd用来存放接收到的数据字节;成员变量timeout用来维护超时值,这里主要讨论这个。这个数值怎么维护呢,可以用一个定时器来维护,以可以放在普通的滴答中断里面来维护,也可以根据系统运行一条指令的周期,在自己的循环中来维护,给其设置个初值,比如说100,当有第一个数据到来以后,timeout在指定的时间就会减少1,减少到0时,就认为超时,不论是否接收到足够的数据,都应该抛弃。
二、根据接收超时来判断一个数据包
核心思想是如果在达到一定的时间没有接受到数据,就认为数据包接收完成。modbus协议里就有通过时间间隔来判断帧结束的。具体实现是要使用一个定时器,在接收到第一个数据时候,开启定时器,在接收到一个数据时候,就将定时器清零,让定时器重新开始计时,如果设定的超时时间到(超时时间长度可以设置为5个正常接收的周期),则认为在这一段时间内没有接受到新的数据,就认为接收到一个完整的数据包了。流程大体如下图所示:
进行一个简单的小的总结,上述几种方法都还是较为常用的,在具体的实现上,可以根据具体的实际情况,设计出具体的通讯协议。数据校验位,有时候感觉不出来其重要性,但是一定要加上,对数据进行一个相关的验证还是必要的。现在很在MCU都带有FIFO,DMA等功能,所以有时候利用上这些特性,可以设计出更好的通讯方式。有的人问在接受串口数据时候是应该中断一次接收一个,还是进入中断后接收一段数据呢,我认为应该中断接收一个,因为CPU是很快的,至少对于串口是这样,在接受每个数据的间隔期间,处理器还是可以做些其他工作的。这是在裸机下的模型。在多线程中,那就可以直接建立一个数据接收线程。
没有更多推荐了,TCP服务器数据收发
说明:&&STM32写的一个简单的tcp服务器程序,可以接受消息发送数据(STM32 to write a simple TCP server program, you can accept the news sent data)
文件列表:
23 TCP服务器数据收发实验\Common\common.c
23 TCP服务器数据收发实验\Common\common.h
23 TCP服务器数据收发实验\lwip_v1.3.2\CHANGELOG
23 TCP服务器数据收发实验\lwip_v1.3.2\COPYING
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\contrib.txt
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\FILES
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\nzp448.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\nzp449.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\nzp44A.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\nzp44B.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\nzp44C.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\nzp44D.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\rawapi.txt
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\savannah.txt
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\snmp_agent.txt
23 TCP服务器数据收发实验\lwip_v1.3.2\doc\sys_arch.txt
23 TCP服务器数据收发实验\lwip_v1.3.2\FILES
23 TCP服务器数据收发实验\lwip_v1.3.2\nzp446.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\nzp447.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\nzp44E.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\nzp45D.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\bpstruct.h
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\cc.h
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\cpu.h
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\epstruct.h
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\init.h
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\lib.h
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\nzp44F.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\nzp450.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\nzp451.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\nzp452.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\nzp453.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\nzp454.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\nzp455.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\nzp456.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\perf.h
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\arch\sys_arch.h
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\Standalone\ethernetif.c
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\Standalone\ethernetif.h
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\Standalone\nzp45B.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\port\STM32F4x7\Standalone\nzp45C.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\README
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\api_lib.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\api_msg.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\err.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\netbuf.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\netdb.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\netifapi.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\nzp45E.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\nzp45F.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\nzp460.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\nzp461.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\nzp462.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\nzp463.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\nzp464.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\nzp465.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\sockets.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\api\tcpip.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\dhcp.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\dns.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\init.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\autoip.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\icmp.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\igmp.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\inet.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\inet_chksum.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\ip.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\ip_addr.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\ip_frag.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\nzp469.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\nzp46A.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\nzp46B.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\nzp46C.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\nzp46D.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\nzp46E.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\nzp46F.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv4\nzp470.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv6\icmp6.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv6\inet6.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv6\ip6.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv6\ip6_addr.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv6\nzp3AC.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv6\nzp471.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv6\nzp472.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv6\nzp473.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv6\nzp474.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\ipv6\README
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\mem.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\memp.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\netif.c
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\nzp466.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\nzp467.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\nzp468.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\nzp475.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\nzp476.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\nzp477.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\nzp478.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\nzp479.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\nzp480.tmp
23 TCP服务器数据收发实验\lwip_v1.3.2\src\core\nzp481.tmp
近期下载者:
相关文件:这数据包怎么发送,想学数据传送的原理,能教我一下吗,谢谢!!_百度知道
这数据包怎么发送,想学数据传送的原理,能教我一下吗,谢谢!!
我有更好的答案
比如我们要打开一个网页,过程是,先发一个请求到服务器(HTTP请求),服务器会将你要请求的网页文件发回来给你,你就能看到网页信息了。我给你说一下请求发过去的过程(服务器把网页发回来给你的过程是一样的)。你在计算机打开浏览器以后,计算机会给浏览器分配一个端口号,并在应用层生成HTTP请求,要发往服务器的80端口,这个请求一层一层往下,到传输层的时候,被封装为“数据段”;再往下传,到网络层的时候被封装为“IP数据包”,再往下传,到数据链路层的时候被封装为“帧”,这个帧再往下传,到物理层的时候,被转换为电信号。电信号从物理层发出,到交换机的物理层,交换机的物理层将电信号转换为帧(接收方做的是一个跟发送方相反的过程),交换机拿到帧以后,读懂上面的MAC地址,拿到MAC地址以后,去对照MAC地址映射表,决定要从哪一个端口转发出去以后,将帧发给物理层,物理层再将帧转换为电信号,然后发出。到路由器的物理层接收到交换机发过来的电信号以后将其转换为帧,路由器的物理层将这个帧发给路由器的数据链路层,数据链路层将帧拆开,得到IP数据包,并将这个帧发给网络层;路由器的网络层拿到IP数据包以后,读出包上的目的IP地址,然后去对照路由表,决定要把这个包从哪个端口转发出去。决定以后,网路层把这个包往下发,到数据链路层,数据链路层把IP包封装为新的帧,再往下发给物理层,物理层再把帧转换为电信号,发给服务器。服务器的物理层接收到电信号以后,将电信号转换为帧发给数据链路层;数据链路层将帧拆开,得到IP数据包以后,发给网络层;网络层得到IP数据包以后,将包拆开,得到数据段,并继续往上传,给传输层;传输层得到数据段以后,将数据段拆开,就得到当初客户机生成的原本的HTTP请求,这个请求一直往上发,到应用层,工作在应用层的网站服务就得到了这个请求,并作出响应。响应的方式就是将你请求的网页发回来给你,过曾是一样的。要理解这个过程,最好能先理解一下网络模型的概念。希望对你有帮助。
采纳率:67%
为您推荐:
其他类似问题
您可能关注的内容
数据包的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。使用pcap库写的抓包程序 抓到数据包之后进行修改在发送给服务器
[问题点数:40分]
本版专家分:0
CSDN今日推荐
本版专家分:368197
2017年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第二
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
本版专家分:0
本版专家分:0
本版专家分:368197
2017年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第二
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
本版专家分:0
本版专家分:833
本版专家分:0
本版专家分:0
本版专家分:1141
本版专家分:0
本版专家分:0
本版专家分:0
本版专家分:1141
本版专家分:0
本版专家分:0
本版专家分:3604
本版专家分:0
本版专家分:0
本版专家分:0
本版专家分:3604
本版专家分:1996
2015年4月 Linux/Unix社区大版内专家分月排行榜第二
本版专家分:0
本版专家分:0
本版专家分:0
本版专家分:1996
2015年4月 Linux/Unix社区大版内专家分月排行榜第二
本版专家分:0
本版专家分:0
本版专家分:0
本版专家分:5382
匿名用户不能发表回复!|

我要回帖

更多关于 stm32下的ftp服务器 的文章

 

随机推荐