2

在回显示例中,我们有这个函数再次发送相同的数据包以便回显数据,我想更改它以便发送用户发送的任何固定数据,所以我更改了这个:

    err = tcp_write(tpcb, p->payload, p->len, 1);

对此:

        char* as="ki";
    err = tcp_write(tpcb, as, 3, 1);

当我运行我的应用程序时,它不会回显任何内容,这是为什么呢?

4

1 回答 1

0

你的问题是C代码。代替

char * as = "ki"

采用

char as[] = "ki"

或者您可以执行 pbuf alloc,也许这可以为您生成一些内存。

es->p = pbuf_alloc(PBUF_TRANSPORT, strlen((char*)"ki") , PBUF_POOL);
  pbuf_take(es->p, (char*)"ki", strlen("ki"));

此外,你还应该检查返回条件,如果 tcp_write 给你的不是 ERR_OK 那么你应该再试一次并更加努力。我在 POLL 机制中使用 tcp write,但这会降低吞吐量,当我在 main while 循环中使用它时,我会获得相对更好的吞吐量。

于 2013-07-09T11:02:55.457 回答