打印

LWIP接收大文件问题

[复制链接]
1950|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaosi204|  楼主 | 2014-4-23 16:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟初学LWIP,最近在实验用网络传输文件遇到的问题
现在传输小字节数网络可以通,但是发送大文件的时候就不行了
#define MY_BUF        512
u8 my_buf[MY_BUF];

void UDP_client_Receive(void *arg, struct udp_pcb *upcb, struct pbuf *p,   
                 struct ip_addr *addr, u16_t port)
{
  uint8_t i=0;
  struct ip_addr destAddr = *addr;
  if(p != NULL)                          /* 如果收到的数据不为空   */            
  {
   if((p->tot_len)<MY_BUF)
    strcpy((char*)my_buf,p->payload);  /* 将收到的数据拷贝到my_buf[...]里去 */            
    pbuf_free(p);                       /* 释放缓冲区数据 */
  }
}
这里定义的是接收最大512字节的数


而在low_level_input()这个函数里面的
    for(q = p; q != NULL; q = q->next)
{         memcpy((u8_t*)q->payload, (u8_t*)&lwip_buf[rev_len],q->len);
rev_len +=q->len;       
    }
其中u8 lwip_buf[1500*2];这个应该是能够接收的最大缓存吧。

如果我有一个几百K的数据要从PC端通过以太网发送给开发板,开发板想以512字节左右进行存储到SD卡或者FLASH里去,处理完之后继续接收下一个512字节,一直到数据传输完为止。这个该怎么改呢?希望各位高手能给予指点,小弟不胜感激

相关帖子

沙发
zhenjiang7412| | 2014-4-23 22:58 | 只看该作者
如果用UDP,需自定协议,给每个包编号,收到后告诉PC端收到哪一包数据

使用特权

评论回复
板凳
xiaosi204|  楼主 | 2014-4-24 08:54 | 只看该作者
zhenjiang7412 发表于 2014-4-23 22:58
如果用UDP,需自定协议,给每个包编号,收到后告诉PC端收到哪一包数据

我是新手,那用TCP呢?是不是也一样呢?能不能给具体讲一下呢?或者程序该怎么加?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

22

帖子

0

粉丝