打印
[STM32F1]

收不到ACK超时终止文件传输

[复制链接]
楼主: jiaxw
手机看帖
扫描二维码
随时随地手机跟帖
21
liliang9554| | 2022-2-20 14:15 | 只看该作者 回帖奖励 |倒序浏览
void tftpd_init(void)
{
  err_t err;
  unsigned port = 69;

  /* create a new UDP PCB structure  */
  UDPpcb = udp_new();
  if (!UDPpcb)
  {  /* Error creating PCB. Out of Memory  */
    return;
  }

  /* Bind this PCB to port 69  */
  err = udp_bind(UDPpcb, IP_ADDR_ANY, port);
  if (err != ERR_OK)
  {    /* Unable to bind to port  */
    return;
  }

  /* TFTP server start  */
  udp_recv(UDPpcb, recv_callback_tftp, NULL);
}

使用特权

评论回复
22
liliang9554| | 2022-2-20 14:17 | 只看该作者
OK,到这里就完成了TFTP服务器在LWIP中建立起来了,接下来的主要事情就是根据TFTP协议进行协议解释、数据处理。

使用特权

评论回复
23
jiajs| | 2022-2-20 14:22 | 只看该作者
OK,到这里就完成了TFTP服务器在LWIP中建立起来了,接下来的主要事情就是根据TFTP协议进行协议解释、数据处理。

使用特权

评论回复
24
llljh| | 2022-2-20 14:26 | 只看该作者
兄弟应该用的也是客户端模式(STM32),楼主这里要的是服务器模式(STM32);
楼主在线调试时可以查看下发送了WRQ数据包后,客户端是否能进回调函数app_tftp_recv_callback;
这里估计不会进,但这时TFTP32其实已经应答了。
问题就出在这里,为什么没有进回调函数,我也不知道什么原因,楼主可以仔细研究下。
楼主可以网上找找网络监控工具,那样可以监控数据的收发情况,有利于分析查找问题

使用特权

评论回复
25
jiaxw|  楼主 | 2022-2-20 14:27 | 只看该作者
说的没错. STM32做服务器是没有问题的. 下面的图就是我的实验结果

使用特权

评论回复
26
chuxh| | 2022-2-20 14:29 | 只看该作者

现在我想让STM32做客户端, 但是udp_recv(upcb, tftp_recv_callback, NULL);里面的回调函数一直都进不去.
就是卡在这里, 要能进就简单了.

使用特权

评论回复
27
jiaxw|  楼主 | 2022-2-20 14:32 | 只看该作者
同在一个局域网内, 居然端口不可达? 什么原因呢?

使用特权

评论回复
28
jiaxw|  楼主 | 2022-2-20 14:36 | 只看该作者
我把tftpd32下面的app.bin删掉就能进回调函数了, 只是此时Opcode字段值为5(错误信息包)。但是只要放一个app.bin, 开始有效的数据传输,就是端口不可达。有人碰到过这个问题吗

使用特权

评论回复
29
jiaxw|  楼主 | 2022-2-20 14:37 | 只看该作者
LWIP的当前代码不支持这种方式, 需要自己做一定的改动.

使用特权

评论回复
30
renyaq| | 2022-2-20 14:40 | 只看该作者
这个TFTP可以做设么用?没研究过。

使用特权

评论回复
31
jiajs| | 2022-2-20 14:45 | 只看该作者
很可能是时序不对,导致输出一半停了

使用特权

评论回复
32
yszong| | 2022-2-20 14:48 | 只看该作者
客户端连接服务器IP地址和端口号后就可以了吧

使用特权

评论回复
33
renyaq| | 2022-2-20 14:50 | 只看该作者
看完觉得自己太不给力了,都没听说过这种用法,学习学习。

使用特权

评论回复
34
jiaxw|  楼主 | 2022-2-20 14:52 | 只看该作者
嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽

使用特权

评论回复
35
SantaBunny| | 2023-3-3 20:52 | 只看该作者
服务端会给每个待完成的半连接都设一个定时器,如果超过时间还没有收到客户端的ACK消息,就重新发送一次SYN-ACK消息给客户端直到重试超过一定次数时才会放弃。

使用特权

评论回复
36
Henryko| | 2023-3-3 22:48 | 只看该作者
TFTP是做什么用的啊

使用特权

评论回复
37
芯路例程| | 2024-1-11 17:10 | 只看该作者
我不明白,这个游戏挺高端的,支持吧。

使用特权

评论回复
38
digit0| | 2024-1-12 14:19 | 只看该作者
为什么你的端口是4096,而不是69?

使用特权

评论回复
39
童雨竹| | 2024-4-5 07:26 | 只看该作者

脉冲变压器的原/副边相位关系,

使用特权

评论回复
40
Clyde011| | 2024-4-5 09:32 | 只看该作者

只能处理较小的能量

使用特权

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

本版积分规则