summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2017-08-10 14:09:57 +0800
committerBernard Xiong <[email protected]>2017-08-10 14:09:57 +0800
commit5f4bcfa3e14fc00feb68754159ad67e9c5c4ac14 (patch)
tree425e80166ab1ba4d2314ac25a257d2819b53b01b /examples
parentf6b6a5cf221845fea7b7614097a31b30caeefee2 (diff)
[examples] code cleanup.
Diffstat (limited to 'examples')
-rw-r--r--examples/network/tcpclient.c42
-rw-r--r--examples/network/tcpsendpacket.c103
-rw-r--r--examples/network/tcpserver.c37
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';