summaryrefslogtreecommitdiff
path: root/examples/network
diff options
context:
space:
mode:
authoryangpeng <[email protected]>2023-12-26 16:24:40 +0800
committerRbb666 <[email protected]>2023-12-28 15:55:14 +0800
commitfb8f1458d026117f9be2df811c282685b0d03a9e (patch)
tree7a4d817e0727826056656b3629b75505571c4fd9 /examples/network
parent22b9de6f1d0e1d9707620efd7df21bdf5605b9fd (diff)
[examples]更正tcp例程中recv/send返回值判断
Diffstat (limited to 'examples/network')
-rw-r--r--examples/network/tcpclient.c24
-rw-r--r--examples/network/tcpserver.c24
2 files changed, 32 insertions, 16 deletions
diff --git a/examples/network/tcpclient.c b/examples/network/tcpclient.c
index 453910ec90..09b94c5216 100644
--- a/examples/network/tcpclient.c
+++ b/examples/network/tcpclient.c
@@ -10,6 +10,7 @@
#include <rtthread.h>
#include <string.h>
+#include <stdlib.h>
#if !defined(SAL_USING_POSIX)
#error "Please enable SAL_USING_POSIX!"
@@ -114,15 +115,15 @@ static void tcpclient(void *arg)
{
/* Receive failed and close the connection */
/* 接收失败,关闭这个连接 */
- LOG_E("Received error, close the socket.");
+ LOG_E("Received error(%d), close the socket.", errno);
goto __exit;
}
else if (bytes_received == 0)
{
- /* Print warning message when recv function returns 0 */
- /* 打印recv函数返回值为0的警告信息 */
- LOG_W("Received warning, recv function returns 0.");
- continue;
+ /* Socket has performed an orderly shutdown. */
+ /* 连接已断开 */
+ LOG_E("Socket has performed an orderly shutdown.");
+ goto __exit;
}
else
{
@@ -151,14 +152,19 @@ static void tcpclient(void *arg)
{
/* Send failed, close the connection */
/* 发送失败,关闭这个连接 */
- LOG_I("send error, close the socket.");
+ LOG_I("send error(%d), close the socket.", errno);
goto __exit;
}
else if (ret == 0)
{
- /* Print warning message when send function returns 0 */
- /* 打印send函数返回值为0的警告信息 */
- LOG_W("Send warning, send function returns 0.");
+ /* Socket has performed an orderly shutdown. */
+ /* 连接已断开 */
+ LOG_E("Socket has performed an orderly shutdown.");
+ goto __exit;
+ }
+ else if (ret != rt_strlen(send_data))
+ {
+ LOG_W("%d out of %d bytes sent.", ret, rt_strlen(send_data));
}
}
diff --git a/examples/network/tcpserver.c b/examples/network/tcpserver.c
index 6ec5f0e7a3..4da840d627 100644
--- a/examples/network/tcpserver.c
+++ b/examples/network/tcpserver.c
@@ -10,6 +10,7 @@
#include <rtthread.h>
#include <string.h>
+#include <stdlib.h>
#if !defined(SAL_USING_POSIX)
#error "Please enable SAL_USING_POSIX!"
@@ -139,10 +140,12 @@ static void tcpserv(void *arg)
}
else if (bytes_received == 0)
{
- /* Print warning message when recv function returns 0 */
- /* 打印recv函数返回值为0的警告信息 */
- LOG_W("Received warning, recv function returns 0.");
- continue;
+ /* Socket has performed an orderly shutdown */
+ /* 连接已断开 */
+ LOG_E("Socket has performed an orderly shutdown.");
+ closesocket(connected);
+ connected = -1;
+ break;
}
else
{ /* Receive data successfully and append '\0' at the end of message */
@@ -184,9 +187,16 @@ static void tcpserv(void *arg)
}
else if (ret == 0)
{
- /* Print warning message when send function returns 0 */
- /* 打印send函数返回值为0的警告信息 */
- LOG_W("Send warning, send function returns 0.");
+ /* Socket has performed an orderly shutdown */
+ /* 连接已断开 */
+ LOG_E("Socket has performed an orderly shutdown.");
+ closesocket(connected);
+ connected = -1;
+ break;
+ }
+ else if (ret != rt_strlen(send_data))
+ {
+ LOG_W("%d out of %d bytes sent.", ret, rt_strlen(send_data));
}
}
}