打印
[STM32F4]

关于STM32F4+LWIP,socket接口接收失败

[复制链接]
429|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2023-12-21 15:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用了STM32F407+LWIP+FreeRTOS,需要与服务器进行tcp通信,采用了socket接口,连接都成功了,但是使用函数recv接收时,一直返回0,即断开连接。怎么会这样子啊啊,我要疯了啊啊 。谁能帮帮我啊啊?代码如下:


while(gnetif.ip_addr.addr == 0)
        {//获取到本机ip
                osDelay(1000);
        }
        
        server_addr.sin_family = AF_INET;                        


        server_addr.sin_addr.s_addr = inet_addr("119.103.33.44");
        server_addr.sin_port = htons(1234);


        
        while(1)
        {
          sock_fd = socket(AF_INET, SOCK_STREAM, 0);
                if(sock_fd == -1)
                {
                        osDelay(1000);   //1秒
                }
                else
                {
                  res = connect(sock_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr));
                        if(0 == res)
                        {
                                static s8 recv_flag;
                                while(1)
                                {
                                        //接收
                                        recv_flag = recv(sock_fd,recv_data_buf,RECV_INSTR_DATA_NUM,0);
                                        if(recv_flag == 0)
                                        {//另一端已关闭
                                                break;
                                        }
                                        else if(recv_flag == -1)
                                        {//接收失败,下次再接收
                                                
                                        }
                                        else
                                        {
                                          //接收正确
                                        }        


                                  osDelay(50);
                                }
                                close(sock_fd);
                        }
                        else
                        {
                                close(sock_fd);
                                osDelay(500);
                        }
                }
                osDelay(500);
        }

使用特权

评论回复
沙发
一秒落纱| | 2024-1-17 14:00 | 只看该作者
是不是端口之类的没配置?

使用特权

评论回复
板凳
远山寻你| | 2024-1-17 16:00 | 只看该作者
你能ping?ping通了是么?

使用特权

评论回复
地板
三生万物| | 2024-1-17 18:00 | 只看该作者
我记得这F407应该有相应的教程,你先看看教程呗

使用特权

评论回复
5
江河千里| | 2024-1-17 20:00 | 只看该作者
这个不好说,如果掉线可能是端口冲突了

使用特权

评论回复
6
冰春彩落下| | 2024-1-17 22:00 | 只看该作者
仿真看看吧,看看哪里会导致端口关闭

使用特权

评论回复
7
夜阑风雨| | 2024-1-18 01:00 | 只看该作者
一般来说,返回0可能是后台没给返数据

使用特权

评论回复
8
淡漠安然| | 2024-1-18 03:00 | 只看该作者
我建议楼主直接ping一下,看看网络 通没通

使用特权

评论回复
9
暖了夏天蓝了海| | 2024-1-18 05:00 | 只看该作者
这种是不是目标端口或者什么没设置对啊?

使用特权

评论回复
10
别乱了阵脚| | 2024-1-18 09:00 | 只看该作者
TCP通信需要端口的,端口不对也通信不上

使用特权

评论回复
11
光辉梦境| | 2024-1-18 14:00 | 只看该作者
你试试UDP吧,UDP带广播功能,很容易实现

使用特权

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

本版积分规则

1504

主题

4513

帖子

6

粉丝