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書き込みを使用していますが、スループットが低く、メインのwhileループで使用するとスループットが比較的向上します。

于 2013-07-09T11:02:55.457 に答える