Hi, It seems that when i recieve an UDP message, the UDP input function doesn't find the pcb matching with the message recieved.
I have a client that use POSIX socket on my computer and a server that use LWIP on a remote equipment. I already have a raw tcp echo working. I've used a simple raw udp echo example on the remote equipment, basically: in udp_init(): udp_pcb = udp_new(); udp_bind(udp_pcb, addr, port); udp_recv(udp_pcb, udp_echo_recv()); and in udp_echo_recv(): udp_sendto(); it didn't worked and after that, i found that most of the time, my messages weren't matching with a local pcb in udp_input(). So i tried to add specific adresse to udp_bind() and i changed udp_sendto with udp_connect() and udp_send(). I turned ON UDP_DEBUG and it shows me that my pcb is connected and binded to what i want. So like i said, most of the time udp_input() don't find matching pcb, but the message is stored. So when udp_input() manage to match with a local pcb, it calls the callback with the good pcb but with the first pbuf stored. So basically i got: send: 1 rcv:... ///////// i don't recieve anything, udp_input() doesn't find any pcb matching . ///////// restarting my UDP client. send: 2 rcv:.... . send: 3 rcv:.... . send: 4 rcv: 1 ///// miracle ! udp_input() find a match, it empty all the buffers stored with this pcb starting with 1. (my programme isn't designed to rcv several ////// messages at once but i know for sure that udp_input calls the callback as many times as it has pbufs stored for this pcb) So my final question is, why doesn't udp_input() find local match all times ? Why does it work with the fourth time and not before ? Regards, Laurent
_______________________________________________ lwip-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/lwip-users
