diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2021-11-30 23:50:53 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2021-11-30 23:50:53 -0700 |
commit | d89195e2144df51ca02a860f4b46fd38b4dfeb29 (patch) | |
tree | bf94208b2538c8039729f7b30a7dd5504ebf7fb2 /main/tcp_server.c | |
parent | 6df4a4ed74621ce5df26791b84b9157902aeaa83 (diff) | |
download | esp32-ws2812b-d89195e2144df51ca02a860f4b46fd38b4dfeb29.tar.gz esp32-ws2812b-d89195e2144df51ca02a860f4b46fd38b4dfeb29.tar.bz2 esp32-ws2812b-d89195e2144df51ca02a860f4b46fd38b4dfeb29.zip |
Reorganize tasks into their own files.
Diffstat (limited to 'main/tcp_server.c')
-rw-r--r-- | main/tcp_server.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/main/tcp_server.c b/main/tcp_server.c new file mode 100644 index 0000000..1ff9b62 --- /dev/null +++ b/main/tcp_server.c @@ -0,0 +1,43 @@ +#include "tcp_server.h" + +#include "lwip/sockets.h" +#include "station.h" + +portTASK_FUNCTION(tcp_server, params) +{ + ws_params_t* ws_params = (ws_params_t*) params; + + wifi_init_station("Wort", "JoshIsBau5"); + + int s = socket(AF_INET, SOCK_STREAM, 0); + struct sockaddr_in addr; + memset(&addr, 0, sizeof(addr)); + addr.sin_port = htons(1234); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = INADDR_ANY; + int err = bind(s, (struct sockaddr*)&addr, sizeof(addr)); + if (err) { + printf("Error binding to sockaddr: %d\n", err); + return; + } + + printf("Listening ...\n"); + listen(s, 1); + + while (true) { + printf("Waiting for connection... \n"); + + struct sockaddr_in client_addr; + socklen_t size; + int sock = accept(s, (struct sockaddr*)&client_addr, &size); + + printf("Accepted connection\n"); + ssize_t len; + + while ((len = read(sock, ws_params->color, sizeof(ws_params->color) - 1)) > + 0) { + ws_params->color[len] = 0; + printf("Read %s\n", ws_params->color); + } + } +} |