diff --git a/Ubiquitous/XiZi_IIoT/board/xidatong-riscv64/third_party_driver/ethernet/connect_w5500.c b/Ubiquitous/XiZi_IIoT/board/xidatong-riscv64/third_party_driver/ethernet/connect_w5500.c index 22492d488..78837176b 100644 --- a/Ubiquitous/XiZi_IIoT/board/xidatong-riscv64/third_party_driver/ethernet/connect_w5500.c +++ b/Ubiquitous/XiZi_IIoT/board/xidatong-riscv64/third_party_driver/ethernet/connect_w5500.c @@ -326,17 +326,21 @@ void wiz_client_op_test(int argc, char *argv[]) { KPrintf("wiz client to %d.%d.%d.%d:%d\n", ip[0], ip[1], ip[2], ip[3], port); uint8_t buf[g_wiznet_buf_size]; sscanf(argv[3], "%s", buf); - int ret = - wiz_client_op(client_sock, buf, g_wiznet_buf_size, ip, port, SEND_DATA); - if (ret <= 0) { - KPrintf("[W5500] Client Op Failed.\n"); - } - MdelayKTask(10); - memset(buf, 0, g_wiznet_buf_size); - // waiting for a responding. - ret = wiz_client_op(client_sock, buf, g_wiznet_buf_size, ip, port, RECV_DATA); - if (ret > 0) { - KPrintf("received msg: %s\n", buf); + while (true) { + int ret = + wiz_client_op(client_sock, buf, g_wiznet_buf_size, ip, port, SEND_DATA); + if (ret <= 0) { + KPrintf("[W5500] Client Op Failed.\n"); + } + MdelayKTask(10); + memset(buf, 0, g_wiznet_buf_size); + // waiting for a responding. + ret = + wiz_client_op(client_sock, buf, g_wiznet_buf_size, ip, port, RECV_DATA); + if (ret > 0) { + KPrintf("received msg: %s\n", buf); + break; + } } }