WIFI AP + DHCP + UPD emission/Reception : OK

This commit is contained in:
Samuel 2026-01-31 22:18:53 +01:00
parent c1ea843094
commit bb126ada4e

View File

@ -87,6 +87,17 @@ void run_udp_beacon() {
} }
} }
void udp_receive_callback(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *addr, u16_t port){
printf("UDP callback !\n");
printf("IP: %d.%d.%d.%d, port %d\n", (addr->addr >>24) & 0xFF, (addr->addr >>16) & 0xFF, (addr->addr >>8) & 0xFF, addr->addr & 0xFF, port);
printf("Taille:%d\n", p->len);
printf("Contenu: ");
for(int i=0; i < p->len; i++){
printf("%c", ((char*)p->payload)[i]);
}
printf("\n");
}
static err_t tcp_close_client_connection(TCP_CONNECT_STATE_T *con_state, struct tcp_pcb *client_pcb, err_t close_err) { static err_t tcp_close_client_connection(TCP_CONNECT_STATE_T *con_state, struct tcp_pcb *client_pcb, err_t close_err) {
if (client_pcb) { if (client_pcb) {
assert(con_state && con_state->pcb == client_pcb); assert(con_state && con_state->pcb == client_pcb);
@ -328,6 +339,8 @@ void key_pressed_func(void *param) {
int main() { int main() {
stdio_init_all(); stdio_init_all();
sleep_ms(4000);
TCP_SERVER_T *state = calloc(1, sizeof(TCP_SERVER_T)); TCP_SERVER_T *state = calloc(1, sizeof(TCP_SERVER_T));
if (!state) { if (!state) {
DEBUG_printf("failed to allocate state\n"); DEBUG_printf("failed to allocate state\n");
@ -371,6 +384,17 @@ int main() {
dns_server_t dns_server; dns_server_t dns_server;
dns_server_init(&dns_server, &state->gw); dns_server_init(&dns_server, &state->gw);
// UDP Callback
struct udp_pcb * udp_pcd_received = udp_new();
err_t err = udp_bind(udp_pcd_received, IP_ADDR_ANY, 4444);
if(err != ERR_OK){
printf("udb_bind err = %d\n", err);
}else{
printf("udb_bind ok\n");
}
udp_recv(udp_pcd_received, udp_receive_callback, NULL);
if (!tcp_server_open(state, ap_name)) { if (!tcp_server_open(state, ap_name)) {
DEBUG_printf("failed to open server\n"); DEBUG_printf("failed to open server\n");
return 1; return 1;