WIFI模块开发教程之W600网络篇1:AP模式下TCP Client通信
发布日期:2021-05-15 00:02:27 浏览次数:25 分类:精选文章

本文共 3895 字,大约阅读时间需要 12 分钟。

������

���������������������AP���������������TCP������������������������AP���������������������������������softAP���������������������WiFi���������������������������������������������������������Wi-Fi������������������������������������������������������������TCP���������������

������������

���������������������������������������������RT_Thread������������softAP���������������������TCP������������������

1. ������������SoftAP

������������������������������"sand"������������"12345678"������������RT_Thread���������������wlan.mgnt.h���������������������������

rt_wlan_set_mode(RT_WLAN_DEVICE_AP_NAME, RT_WLAN_AP);rt_wlan_start_ap("sand", "12345678");

2.(Socket���������������TCP���������)

���������������������TCP���������demo������������������������������������

������������

1. ������������

#include 
#include
#include
#define TCP_SERVER_ADDR "192.168.169.2"#define TCP_SERVER_PORT 8089static void tcp_client_thread_entry(void *args) { int ret = 0; int fd = -1; struct sockaddr_in server_addr; struct timeval t; fd_set readfds; char buf[512] = {0}; int len = 0;reconnect: fd = socket(AF_INET, SOCK_STREAM, 0); if (-1 == fd) { rt_kprintf("create socket error!!!\r\n"); goto exit; } server_addr.sin_family = AF_INET; server_addr.sin_port = htons(TCP_SERVER_PORT); server_addr.sin_addr.s_addr = inet_addr(TCP_SERVER_ADDR); rt_memset(&server_addr.sin_zero, 0x00, sizeof(server_addr.sin_zero)); ret = connect(fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)); if (0 == ret) { rt_kprintf("connect success\r\n"); } else { rt_kprintf("connect error!!!\r\n"); goto try_reconnect; } t.tv_sec = 2; t.tv_usec = 0; while (1) { FD_ZERO(&readfds); FD_SET(fd, &readfds); ret = select(fd + 1, &readfds, 0, 0, &t); if (-1 == ret) { rt_kprintf("select() error!\r\n"); goto try_reconnect; } else if (ret > 0) { if (FD_ISSET(fd, &readfds)) { len = recv(fd, buf, sizeof(buf), 0); if (len > 0) { buf[len] = 0x00; rt_kprintf("receive data:%s\r\n", buf); } else { rt_kprintf("receive data from tcp server error!\r\n"); goto try_reconnect; } if (-1 != fd) { rt_sprintf(buf, "%s\r\n", buf); ret = send(fd, buf, strlen(buf), 0); if (ret < 0) { rt_kprintf("send error, close socket"); goto try_reconnect; } } } } }try_reconnect: if (-1 != fd) { closesocket(fd); } rt_thread_sleep(1); goto reconnect;exit:if (-1 != fd) { closesocket(fd);}rt_kprintf("thread tcp_client exit!\r\n");}int main(void) { rt_err_t ret = RT_EOK; char str[] = "hello world!\r\n"; rt_wlan_set_mode(RT_WLAN_DEVICE_AP_NAME, RT_WLAN_AP); rt_wlan_start_ap("sand", "12345678"); rt_thread_t uart_thread = rt_thread_create("tcp_client", tcp_client_thread_entry, RT_NULL, 4*1024, 25, 10); if (uart_thread != NULL) { rt_thread_startup(uart_thread); } else { ret = RT_ERROR; rt_kprintf("create tcp client error!!!"); } goto exit; return ret;}

2. ������������

���ENV������������������scons���������������build/Bin/rtthread_1M.FLS������������������������������������������TCP���������������������������������������������������������������������������������IP���������

������

1. ������

(1) ������������������������������������������TCP���������������������������

(2) ������������������������������������
(3) ���������������������IP������������������������������������

2. ������������

���������������������������������QQ������906015840������������������������������

上一篇:WIFI模块开发教程之W600网络篇2:AP模式下TCP Server通信
下一篇:WIFI模块开发教程之W600基础篇4:获取设备MAC地址

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月23日 20时59分05秒