2017-06-06 5 views
0

したがって、動作中のTCP Echoのサンプルが動作しています。私が達成しようとしているのは、TCPとUDPを介してデータを送信するだけでなく、TCP Transmissionsを受信できることです。私は未処理のLWIPを使用しており、PC Appを使用して対話します。要求に応じてUDPブロードキャストまたはTCPユニキャストを送信できるようにしたい。 sendto関数から-6(ERR_VAL -6/* Illegal value。* /)エラーが発生する問題があります。私が何が欠けているかもしれないかについてのどんなインプットも役に立つでしょう。あなたはそれを割り当てた後、PCB上のブロードキャストのオプションを設定する必要が未処理のLWIP UDPブロードキャスト

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); 
} 

答えて

2

:UDPブロードキャストワーキングを得ることで私の最初のパスはここにある(現時点では私はちょうどecho.cの底にこの機能を追加しました) udp_new()で:

ip_set_option(l_udp_pcb, SOF_BROADCAST); 
0

これはあなたが

char msg[] = "testingrg"; 
struct pbuf *p; 

     while (1) 
{ 
    //count++; 
    //Allocate packet buffer and send to the remote host 
    p = pbuf_alloc(PBUF_TRANSPORT, sizeof(lwiperf_txbuf_const), PBUF_RAM); 
    memcpy(p->payload, &lwiperf_txbuf_const, sizeof(lwiperf_txbuf_const)); 

    err1 = udp_send(udpecho_raw_pcb, p); 

    pbuf_free(p); //De-allocate packet buffer 

    //osDelay(200); 

} 
を結合した後、データを送信しなければならない方法です