【问题标题】:lwip + rtos reconnectionlwip + rtos 重连
【发布时间】:2016-12-22 08:57:11
【问题描述】:

我在连接到 PC(客户端程序)的微控制器(服务器)中使用 LwIP + RTOS 配置了 TCP 连接

conn = netconn_new(NETCONN_TCP); 
netconn_bind(conn, &MyIPAddr, PORT);

do 
{ 
osDelay(5); 
} 
while((netconn_connect(conn, &DestIPaddr, TCP_PORT)!= ERR_OK)  //wait until a PC client will be available 

如果 TCP 客户端程序已经在 PC 上运行,则一切正常。但是如果我在微控制器上执行 netconn_connect(..) 函数后启动 PC 客户端,while() 条件永远不会是 ERR_OK。 我应该如何修改代码以正确连接到 PC 客户端?

【问题讨论】:

    标签: tcp ethernet rtos lwip


    【解决方案1】:

    你用错了。如果您的应用程序是服务器,那么正确的用法或多或少如下所示:

    listenNetconn = netconn_new(NETCONN_TCP);
    netconn_bind(listenNetconn, IP_ADDR_ANY, port);
    netconn_listen(listenNetconn);
    netconn_accept(listenNetconn, &clientNetconn); // wait for connection
    

    现在您应该使用clientNetconn 来接收/发送数据。 listenNetconn 仅用于侦听新的传入连接,仅此而已。

    这是来自非官方 lwIP wiki 的示例 - http://lwip.wikia.com/wiki/Netconn_Accept

    【讨论】:

      猜你喜欢
      • 2022-10-20
      • 2012-06-06
      • 2015-11-18
      • 2015-06-12
      • 2017-06-26
      • 2017-01-01
      • 2011-01-23
      • 2013-02-20
      • 2018-06-21
      相关资源
      最近更新 更多