diff options
| author | Bernard Xiong <[email protected]> | 2017-08-10 14:09:57 +0800 |
|---|---|---|
| committer | Bernard Xiong <[email protected]> | 2017-08-10 14:09:57 +0800 |
| commit | 5f4bcfa3e14fc00feb68754159ad67e9c5c4ac14 (patch) | |
| tree | 425e80166ab1ba4d2314ac25a257d2819b53b01b /examples | |
| parent | f6b6a5cf221845fea7b7614097a31b30caeefee2 (diff) | |
[examples] code cleanup.
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/network/tcpclient.c | 42 | ||||
| -rw-r--r-- | examples/network/tcpsendpacket.c | 103 | ||||
| -rw-r--r-- | 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 <rtthread.h> -#include <lwip/netdb.h> /* 为了解析主机名,需要包含netdb.h头文件 */ + +#include <lwip/netdb.h> /* 为了解析主机名,需要包含netdb.h头文件 */ #include <lwip/sockets.h> /* 使用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 <rtthread.h> -#include <lwip/netdb.h> /* Ϊ�˽�������������Ҫ����netdb.hͷ�ļ� */ +#include <lwip/netdb.h> /* Ϊ�˽�������������Ҫ����netdb.hͷ�ļ� */ #include <lwip/sockets.h> /* ʹ��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'; |
