迁移的LWIP版本,无法通过TCP连接

时间:2018-11-03 23:32:16

标签: embedded atmel lwip

所以我最近将LWIP的v2.0.3迁移到了我开发的网关设备上。这基于ATSAME70微控制器。基本功能是将HTTP帖子发送到服务器,但是由于某些原因,tcp_connect现在返回ERR_RTE或ERR_VAL。在LWIP文档中,关于这些错误是什么以及如何解决这些错误,没有很多有用的指针。这是设置TCP客户端的功能(我在这里用x表示IP地址,但显然在实际的代码中是正确的IP地址):

struct ip_addr cloud_ip;

/**
 * Set up and initialise the TCP connection for sending a reading to the cloud.
 *
 */
void tcp_cloud_setup_reading_post(void)
{
    // Temp Buffer for IP Addresses
    static char tmp_buff[16];

    // Set the IP Address of the Data Pipeline
    ipaddr_aton("xxx.xxx.xxx.xxx", &cloud_ip);

    // Print a Message
    printf("Attempting Cloud Post to %s -> ", ipaddr_ntoa_r((const ip_addr_t *)&(cloud_ip), tmp_buff, 16));

    // Create a Struct for the TCP Connection
    struct tcp_pcb *cloud_pcb;

    // Create a new PCB for the TCP Connection
    cloud_pcb = tcp_new();

    // Set the Connection Error Callback Function
    tcp_err(cloud_pcb, tcp_cloud_connection_error);

    // Set the Sent Callback Function
    tcp_sent(cloud_pcb, tcp_cloud_reading_sent);

    // Set the Receive Callback Function
    tcp_recv(cloud_pcb, tcp_cloud_get_timestamp);

    // Connect to the Cloud Server
    //tcp_connect(cloud_pcb, &cloud_ip, 80, tcp_cloud_connect_reading_post);
    err_t tcp_error_conn = tcp_connect(cloud_pcb, &cloud_ip, 80, tcp_cloud_connect_reading_post);

    printf("ERROR CODE: %d\r\n", tcp_error_conn);
}

如果有人对我为什么出现错误有任何建议,请告诉我!

谢谢

  • 安迪

0 个答案:

没有答案