我的平台是STM32F107,基于ucos系统,lwip协议栈为1.3.0,下载下位机为server模式,上位机能够拼通下位机,但是上位机网络测试软件发送建立连接时,不能连接,跟踪下位机netconn_accept没有返回,不知什么原因?我移植的代码参考官方的软件:STM32_F107_lwIP_uCOS软件包。
部分代码:
if (bind(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)) == -1)
{
mem_free(recv_data);
return;
}
/* 在socket上进行监听 */
if (listen(sock, 5) == -1)
{
mem_free(recv_data);
return;
}
while(stop != TRUE)
{
sin_size = sizeof(struct sockaddr_in);
connected = accept(sock, (struct sockaddr *)&client_addr, &sin_size);
/* 客户端连接的处理 */
while (1)
{
// send(connected, send_data, strlen(send_data), 0);
bytes_received = recv(connected,recv_data,ECV_BUFFER_SIZE,0);
----------------
}
}
当上位机发送连接请求时,accept()没有返回连接,因而无法处理数据。 |