天线|RF射频
直播中

冯伟

7年用户 193经验值
私信 关注
[问答]

请问LWIP带UCOS操作系统移植例程实验lwip_recvfrom返回错误该怎么办?

我在做LWIP带UCOS操作系统移植 例程实验时,简单更改了tcp_server_thread函数,测试情况是TCP socket收发都正常,
但UDP socket收有问题,发正常。具体代码如下:
static  void    tcp_server_thread(void *arg)
{   
    struct sockaddr_in servaddr,cliaddr;
int servsockfd;
int nret;
int datalen,i;   
    servsockfd=lwip_socket(AF_INET,SOCK_DGRAM,0);
printf("lwip_socket creat servsockfd=%d",servsockfd);
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
servaddr.sin_port=htons(host_port);
nret=lwip_bind(servsockfd,(struct sockaddr *)&servaddr,sizeof(servaddr));
printf("bind nret=%d",nret);
while(1){   
    datalen = lwip_recvfrom(servsockfd, databuff,  sizeof(databuff),0,(struct sockaddr *)&cliaddr,NULL );
    if(datalen > 0){
   printf("datalen =%d",datalen);
         
    }         
}
}
出现的问题如下: lwip_recvfrom返回错误。即
LWIP_ERROR("netconn_accept: invalid recvmbox", sys_mbox_valid(&conn->recvmbox), return ERR_CONN;);
netconn_recv返回ERR_CONN.
不知是哪里有问题,应用程序很简单的。

回帖(1)

黎明

2019-7-24 09:25:27
看报的错误是接收消息邮箱无效。没用过socket
举报

更多回帖

发帖
×
20
完善资料,
赚取积分