在回显示例中,我们有这个函数再次发送相同的数据包以便回显数据,我想更改它以便发送用户发送的任何固定数据,所以我更改了这个:
err = tcp_write(tpcb, p->payload, p->len, 1);
对此:
char* as="ki";
err = tcp_write(tpcb, as, 3, 1);
当我运行我的应用程序时,它不会回显任何内容,这是为什么呢?
在回显示例中,我们有这个函数再次发送相同的数据包以便回显数据,我想更改它以便发送用户发送的任何固定数据,所以我更改了这个:
err = tcp_write(tpcb, p->payload, p->len, 1);
对此:
char* as="ki";
err = tcp_write(tpcb, as, 3, 1);
当我运行我的应用程序时,它不会回显任何内容,这是为什么呢?
你的问题是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 循环中使用它时,我会获得相对更好的吞吐量。