From 8832a6477f868e6d8b315ec89635cee9c4cb17c5 Mon Sep 17 00:00:00 2001 From: David Lin Date: Sun, 12 Apr 2020 10:57:12 +0800 Subject: [PATCH 1/2] Update tcp_client.c --- examples/tcp_udp_base_lwip/tcp_client/tcp_client.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/tcp_udp_base_lwip/tcp_client/tcp_client.c b/examples/tcp_udp_base_lwip/tcp_client/tcp_client.c index 34a762a4..a05f7d23 100644 --- a/examples/tcp_udp_base_lwip/tcp_client/tcp_client.c +++ b/examples/tcp_udp_base_lwip/tcp_client/tcp_client.c @@ -22,8 +22,12 @@ void application_entry(void *arg) MX_LWIP_Init(); - while (1) { - socketfd = socket(AF_INET, SOCK_STREAM, 0); + while (1) { + if ((socketfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { + printf("create socket error %s errno: %d\n", strerror(errno), errno); + goto tcp_client_exit; + } + setsockopt(socketfd, SOL_SOCKET, SO_RCVTIMEO, (char*)&tv, sizeof(struct timeval)); memset(&sockaddr, 0, sizeof(sockaddr)); From 23313e85678fa1f06277c49bad8aa116faa36bde Mon Sep 17 00:00:00 2001 From: David Lin Date: Sun, 12 Apr 2020 11:12:24 +0800 Subject: [PATCH 2/2] Update tcp_server.c Fixed a stackover flow bug. --- examples/tcp_udp_base_lwip/tcp_server/tcp_server.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/examples/tcp_udp_base_lwip/tcp_server/tcp_server.c b/examples/tcp_udp_base_lwip/tcp_server/tcp_server.c index a215d600..fe2f8427 100644 --- a/examples/tcp_udp_base_lwip/tcp_server/tcp_server.c +++ b/examples/tcp_udp_base_lwip/tcp_server/tcp_server.c @@ -46,10 +46,15 @@ void application_entry(void *arg) printf("accpet socket error: %s errno :%d\n",strerror(errno),errno); continue; } - + n = recv(connfd, buff, sizeof(buff), 0); - buff[n] = '\0'; - printf("recv(%d) msg from client:%s\n", ++cnt, buff); + if(n > 0) { + buff[n] = '\0'; + printf("recv(%d) msg from client:%s\n", ++cnt, buff); + } else { + printf("recv err(%d)\n", n); + } + if ((send(connfd, buff, strlen(buff), 0)) < 0) { printf("send msg error: %s errno : %d\n", strerror(errno), errno); break; @@ -59,4 +64,3 @@ void application_entry(void *arg) close(listenfd); } -