#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; char buf[128]; while ((len = read(sock, buf, sizeof(buf) - 1)) > 0) { buf[len] = 0; printf("Read %s\n", buf); for (int i = 0; i < len; ++ i) { switch (buf[i]) { case '+': ws_params->state.brightness += 10; break; case '-': ws_params->state.brightness -= 10; break; } } } } }