大鱼YY 2025-07-01 12:48 采纳率: 0%
浏览 52

lwip tcp_sndbuf配置

裸机开发使用STM32F429IGT6+CubeMX+Lwip+LAN8720配置的工程中,搭建TCP客户端与服务器进行通信。功能都是没有问题的。但是在使用过程中tcp_sndbuf(tcppcb)的大小始终都是475。不管怎么调整MSS、MEM_SIZE、TCP_SND_BUF都不变。这是怎么回事?
相关配置如下:

#define MEM_SIZE                        16000
#define TCP_MSS 1400
#define TCP_SND_BUF                     (4 * TCP_MSS)

  • 写回答

7条回答 默认 最新

  • 阿里嘎多学长 2025-07-01 12:48
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    lwip tcp_sndbuf配置

    你遇到的问题是关于LWIP库中的tcp_sndbuf配置的问题。tcp_sndbuf是LWIP库中的一个函数,用于设置TCP发送缓冲区的大小。

    在你的情况下,你使用STM32F429IGT6微控制器,搭建了TCP客户端和服务器,功能都正常工作。但是在使用过程中,你遇到了tcp_sndbuf的配置问题。

    LWIP库中的tcp_sndbuf函数用于设置TCP发送缓冲区的大小,这个缓冲区用于存储待发送的数据。默认情况下,LWIP库中的tcp_sndbuf函数将发送缓冲区的大小设置为128字节。

    如果你需要更改发送缓冲区的大小,可以使用tcp_sndbuf函数来设置。例如:

    tcp_set_sndbuf(tcppcb, 1024);
    

    这将设置TCP发送缓冲区的大小为1024字节。

    需要注意的是,tcp_sndbuf函数只能在TCP连接建立后调用。如果你在TCP连接建立前调用tcp_sndbuf函数,可能会导致错误。

    在你的情况下,如果你需要更改发送缓冲区的大小,可以在TCP连接建立后调用tcp_sndbuf函数来设置。例如:

    tcp_connect(tcppcb, "192.168.1.100", 8080);
    tcp_set_sndbuf(tcppcb, 1024);
    

    这将设置TCP发送缓冲区的大小为1024字节,并且在TCP连接建立后调用tcp_set_sndbuf函数。

    希望这能够帮助你解决问题。如果你需要更多帮助,请随时问我。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月1日