So, ich habe ein funktionierendes TCP Echo-Beispiel funktioniert. Ich versuche, TCP-Übertragungen zu empfangen und Daten über TCP und UDP zu senden. Ich verwende rohe LWIP und habe eine PC-App, mit der ich interagieren werde. Ich möchte in der Lage sein, eine UDP Broadcast oder TCP Unicast bei Bedarf zu senden. Ich habe Probleme, bei denen ich einen Fehler von -6 (ERR_VAL -6/* Illegal value. * /) Von der sendto-Funktion erhalte. Irgendeine Eingabe, was ich vielleicht vermisse, wäre hilfreich. Mein erster Durchgang eine UDP-Broadcast-Arbeiten an immer hier ist (im Moment habe ich nur noch diese Funktion auf den Boden des echo.c):Raw LWIP UDP Broadcast
void echo_tx()
{
// Attempt a UDP Broadcast
// l_udp_pcb
err_t wr_err = ERR_OK;
struct pbuf *p = pbuf_alloc(PBUF_TRANSPORT, 1024, PBUF_RAM);
l_udp_pcb = udp_new();
wr_err = udp_bind(l_udp_pcb, IP_ADDR_ANY, 0);
wr_err = udp_connect(l_udp_pcb, IP_ADDR_ANY, 10);
unsigned char buffer_send[1024] = "My Name Is What";
p->payload = buffer_send;
p->len = 1024;
p->tot_len = 1024;
wr_err = udp_sendto(l_udp_pcb,p, IP_ADDR_BROADCAST, 10);
if(wr_err != ERR_OK)
{
wr_err = udp_sendto(l_udp_pcb,p, IP_ADDR_BROADCAST, 10);
}
pbuf_free(p);
}