From 5f4bcfa3e14fc00feb68754159ad67e9c5c4ac14 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Thu, 10 Aug 2017 14:09:57 +0800 Subject: [examples] code cleanup. --- examples/network/tcpclient.c | 42 +++++++++------- examples/network/tcpsendpacket.c | 103 ++++++++++++++++++++------------------- examples/network/tcpserver.c | 37 +++++++------- 3 files changed, 99 insertions(+), 83 deletions(-) diff --git a/examples/network/tcpclient.c b/examples/network/tcpclient.c index 529c612b9a..c7a53c609f 100644 --- a/examples/network/tcpclient.c +++ b/examples/network/tcpclient.c @@ -1,16 +1,17 @@ #include -#include /* 为了解æž�主机å��,需è¦�包å�«netdb.h头文件 */ + +#include /* 为了解æž�主机å��,需è¦�包å�«netdb.h头文件 */ #include /* 使用BSD socket,需è¦�包å�«sockets.h头文件 */ -#define BUFSZ 1024 +#define BUFSZ 1024 static const char send_data[] = "This is TCP Client from RT-Thread."; /* å�‘é€�用到的数æ�® */ void tcpclient(const char* url, int port) { + int ret; char *recv_data; struct hostent *host; int sock, bytes_received; - int ret; struct sockaddr_in server_addr; /* 通过函数入å�£å�‚æ•°url获得host地å�€ï¼ˆå¦‚果是域å��,会å�šåŸŸå��è§£æž�) */ @@ -61,15 +62,18 @@ void tcpclient(const char* url, int port) { /* 接收失败,关闭这个连接 */ lwip_close(sock); - rt_kprintf("\nreceived error,close the socket.\r\n"); + rt_kprintf("\nreceived error,close the socket.\r\n"); + /* 释放接收缓冲 */ rt_free(recv_data); break; - }else if (bytes_received == 0) - { - /* 打å�°recv函数返回值为0的警告信æ�¯ */ - rt_kprintf("\nReceived warning,recv function return 0.\r\n"); - } + } + else if (bytes_received == 0) + { + /* 打å�°recv函数返回值为0的警告信æ�¯ */ + rt_kprintf("\nReceived warning,recv function return 0.\r\n"); + continue; + } /* 有接收到数æ�®ï¼ŒæŠŠæœ«ç«¯æ¸…é›¶ */ recv_data[bytes_received] = '\0'; @@ -78,7 +82,8 @@ void tcpclient(const char* url, int port) { /* 如果是首字æ¯�是q或Q,关闭这个连接 */ lwip_close(sock); - rt_kprintf("\n got a 'q' or 'Q',close the socket.\r\n"); + rt_kprintf("\n got a 'q' or 'Q',close the socket.\r\n"); + /* 释放接收缓冲 */ rt_free(recv_data); break; @@ -91,17 +96,20 @@ void tcpclient(const char* url, int port) /* å�‘é€�æ•°æ�®åˆ°sock连接 */ ret = send(sock,send_data,strlen(send_data), 0); - if (ret < 0) + if (ret < 0) { /* 接收失败,关闭这个连接 */ lwip_close(sock); - rt_kprintf("\nsend error,close the socket.\r\n"); + rt_kprintf("\nsend error,close the socket.\r\n"); + + rt_free(recv_data); break; - }else if (ret == 0) - { - /* 打å�°send函数返回值为0的警告信æ�¯ */ - rt_kprintf("\n Send warning,send function return 0.\r\n"); - } + } + else if (ret == 0) + { + /* 打å�°send函数返回值为0的警告信æ�¯ */ + rt_kprintf("\n Send warning,send function return 0.\r\n"); + } } return; diff --git a/examples/network/tcpsendpacket.c b/examples/network/tcpsendpacket.c index ec23a15d23..e7c514806e 100644 --- a/examples/network/tcpsendpacket.c +++ b/examples/network/tcpsendpacket.c @@ -1,62 +1,67 @@ #include -#include /* ΪÁ˽âÎöÖ÷»úÃû£¬ÐèÒª°üº¬netdb.hÍ·Îļþ */ +#include /* ΪÁ˽âÎöÖ÷»úÃû£¬ÐèÒª°üº¬netdb.hÍ·Îļþ */ #include /* ʹÓÃBSD socket£¬ÐèÒª°üº¬sockets.hÍ·Îļþ */ void tcp_senddata(const char* url, int port, int length) { - struct hostent *host; - int sock, err, result, timeout, index; - struct sockaddr_in server_addr; - rt_uint8_t *buffer_ptr; + struct hostent *host; + int sock, err, result, timeout, index; + struct sockaddr_in server_addr; + rt_uint8_t *buffer_ptr; - /* ͨ¹ýº¯ÊýÈë¿Ú²ÎÊýurl»ñµÃhostµØÖ·£¨Èç¹ûÊÇÓòÃû£¬»á×öÓòÃû½âÎö£© */ - host = gethostbyname(url); - /* ´´½¨Ò»¸ösocket£¬ÀàÐÍÊÇSOCKET_STREAM£¬TCPÀàÐÍ */ - if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) - { - /* ´´½¨socketʧ°Ü */ - rt_kprintf("Socket error\n"); - return; - } + /* ͨ¹ýº¯ÊýÈë¿Ú²ÎÊýurl»ñµÃhostµØÖ·£¨Èç¹ûÊÇÓòÃû£¬»á×öÓòÃû½âÎö£© */ + host = gethostbyname(url); + /* ´´½¨Ò»¸ösocket£¬ÀàÐÍÊÇSOCKET_STREAM£¬TCPÀàÐÍ */ + if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) + { + /* ´´½¨socketʧ°Ü */ + rt_kprintf("Socket error\n"); + return; + } - /* ÉêÇëÄÚ´æ */ - buffer_ptr = rt_malloc(length); - /* ¹¹Ôì·¢ËÍÊý¾Ý */ - for (index = 0; index < length; index ++) - buffer_ptr[index] = index & 0xff; + /* ÉêÇëÄÚ´æ */ + buffer_ptr = rt_malloc(length); + /* ¹¹Ôì·¢ËÍÊý¾Ý */ + for (index = 0; index < length; index ++) + buffer_ptr[index] = index & 0xff; - timeout = 100; - /* ÉèÖ÷¢Ëͳ¬Ê±Ê±¼ä100ms */ - lwip_setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout)); - /* ³õʼ»¯Ô¤Á¬½ÓµÄ·þÎñ¶ËµØÖ· */ - server_addr.sin_family = AF_INET; - server_addr.sin_port = htons(port); - server_addr.sin_addr = *((struct in_addr *)host->h_addr); - rt_memset(&(server_addr.sin_zero), 0, sizeof(server_addr.sin_zero)); + timeout = 100; + /* ÉèÖ÷¢Ëͳ¬Ê±Ê±¼ä100ms */ + lwip_setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout)); + /* ³õʼ»¯Ô¤Á¬½ÓµÄ·þÎñ¶ËµØÖ· */ + server_addr.sin_family = AF_INET; + server_addr.sin_port = htons(port); + server_addr.sin_addr = *((struct in_addr *)host->h_addr); + rt_memset(&(server_addr.sin_zero), 0, sizeof(server_addr.sin_zero)); - /* Á¬½Óµ½·þÎñ¶Ë */ - err = connect(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)); - rt_kprintf("TCP thread connect error code: %d\n", err); + /* Á¬½Óµ½·þÎñ¶Ë */ + err = connect(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)); + rt_kprintf("TCP thread connect error code: %d\n", err); - while(1) - { - /* ·¢ËÍÊý¾Ýµ½sockÁ¬½Ó */ - result = send(sock, buffer_ptr, length, MSG_DONTWAIT); - if(result == -1) //Êý¾Ý·¢ËÍ´íÎó´¦Àí - { - rt_kprintf("TCP thread send error: %d\n", result); - lwip_close(sock); //¹Ø±ÕÁ¬½Ó£¬ÖØÐ´´½¨Á¬½Ó - rt_thread_delay(10); - if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) - rt_kprintf("TCP Socket error:%d\n",sock); - err = connect(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)); - rt_kprintf("TCP thread connect error code: %d\n", err); - }else if (result == 0) - { - /* ´òÓ¡sendº¯Êý·µ»ØÖµÎª0µÄ¾¯¸æÐÅÏ¢ */ - rt_kprintf("\n Send warning,send function return 0.\r\n"); - } - } + while(1) + { + /* ·¢ËÍÊý¾Ýµ½sockÁ¬½Ó */ + result = send(sock, buffer_ptr, length, MSG_DONTWAIT); + if(result < 0) //Êý¾Ý·¢ËÍ´íÎó´¦Àí + { + rt_kprintf("TCP thread send error: %d\n", result); + lwip_close(sock); + + /* ¹Ø±ÕÁ¬½Ó£¬ÖØÐ´´½¨Á¬½Ó */ + rt_thread_delay(10); + + if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) + rt_kprintf("TCP Socket error:%d\n",sock); + + err = connect(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)); + rt_kprintf("TCP thread connect error code: %d\n", err); + } + else if (result == 0) + { + /* ´òÓ¡sendº¯Êý·µ»ØÖµÎª0µÄ¾¯¸æÐÅÏ¢ */ + rt_kprintf("\n Send warning,send function return 0.\r\n"); + } + } } #ifdef RT_USING_FINSH diff --git a/examples/network/tcpserver.c b/examples/network/tcpserver.c index e68d9e53f0..c08949ea83 100644 --- a/examples/network/tcpserver.c +++ b/examples/network/tcpserver.c @@ -74,18 +74,19 @@ void tcpserv(void* parameter) { /* å�‘é€�æ•°æ�®åˆ°connected socket */ ret = send(connected, send_data, strlen(send_data), 0); - if (ret < 0) - { - /* 接收失败,关闭这个连接 */ - lwip_close(sock); - rt_kprintf("\nsend error,close the socket.\r\n"); - break; - }else if (ret == 0) - { - /* 打å�°send函数返回值为0的警告信æ�¯ */ - rt_kprintf("\n Send warning,send function return 0.\r\n"); - } - + if (ret < 0) + { + /* å�‘é€�失败,关闭这个连接 */ + lwip_close(connected); + rt_kprintf("\nsend error,close the socket.\r\n"); + break; + } + else if (ret == 0) + { + /* 打å�°send函数返回值为0的警告信æ�¯ */ + rt_kprintf("\n Send warning,send function return 0.\r\n"); + } + /* 从connected socket中接收数æ�®ï¼ŒæŽ¥æ”¶buffer是1024大å°�,但并ä¸�一定能够收到1024大å°�的数æ�® */ bytes_received = recv(connected,recv_data, 1024, 0); if (bytes_received < 0) @@ -93,11 +94,13 @@ void tcpserv(void* parameter) /* 接收失败,关闭这个connected socket */ lwip_close(connected); break; - }else if (bytes_received == 0) - { - /* 打å�°recv函数返回值为0的警告信æ�¯ */ - rt_kprintf("\nReceived warning,recv function return 0.\r\n"); - } + } + else if (bytes_received == 0) + { + /* 打å�°recv函数返回值为0的警告信æ�¯ */ + rt_kprintf("\nReceived warning,recv function return 0.\r\n"); + continue; + } /* 有接收到数æ�®ï¼ŒæŠŠæœ«ç«¯æ¸…é›¶ */ recv_data[bytes_received] = '\0'; -- cgit v1.3.1