首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试连接到服务器时,LWIP中路由错误

尝试连接到服务器时,LWIP中路由错误
EN

Stack Overflow用户
提问于 2020-06-08 18:40:50
回答 4查看 927关注 0票数 0

我正在尝试使用LWIP连接到远程主机,但我失败了,并且在尝试连接时出现路由错误。

我尝试了一些不同的设置,使用netconn,tcp,甚至udp,但是当我尝试连接时,所有的设置都失败了。因此,我认为在调用connect之前,我在设置中遗漏了一些相当重要的东西,但我找不出哪里出了问题。

代码语言:javascript
复制
int main(void)
{
  HAL_Init();
  SystemClock_Config();

  MX_GPIO_Init();
  MX_USART3_UART_Init();
  Print("USART init ok\n");
  MX_USB_OTG_FS_PCD_Init();
  Print("USB pcd init ok\n");
  MX_LWIP_Init();
  Print("LWIP init ok\n");

  struct tcp_pcb * tcp_client = {0};
  tcp_client = tcp_new();


  if(tcp_client != 0)
  {
      Print("tcp_new ok\n");
      err_t error = {0};
      error = tcp_bind(tcp_client, IP_ADDR_ANY);

      if(error == ERR_OK)
      {
          Print("tcp_bind ok\n");
          err_t errorConnect = {0};
          struct ip4_addr remoteIP;
          IP4_ADDR(&remoteIP, 192, 168, 127, 250);
          errorConnect = tcp_connect(tcp_client, &remoteIP, 4002, tcpConnect);

          if(errorConnect == ERR_OK)
          {
              Print("tcp_connect ok\n");
          }
          else
          {
// I end up here with ERR_RTE as a result
              Print("Error: tcp_connect \n");
          }
      }
      else
      {
          Print("Error: tcp_bind\n");
      }
  }
  else
  {
      Print("Error: tcp_new faild\n");
  }

  Print("DONE!\n\n");

  while (1)
  {

  }
}

Im使用STM32CubeIDE和LWIP作为中间件添加,im使用的卡是ST nucleo F746ZG

该卡直接连接到我的计算机,我可以在我的计算机上的网络设置中看到它连接。因此,某种形式的谈判正在发生。

EN

Stack Overflow用户

发布于 2020-11-30 14:54:35

设置本地IP地址和网络掩码可以使其正常工作。但ERR_RTE (路由问题)的根本原因是TCP/IP协议栈在调用netconn_connect之前尚未完成ip/网络掩码/网关的设置。这应该是一个错误,因为当时ip/网络掩码/gw可能是空的。

解决方案是延迟netconn_connect(),直到完成正确的IP配置。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62260193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档