Как отобразить полученные данные UDP на Textbox? - PullRequest
0 голосов
/ 13 марта 2020

Я хочу получить значения, которые передаются из STM32 через UDP следующим образом.

Код STM32:

     uint Value[15];
     uint8_t SValue[60];

    void udp_receive_callback( )
    {
     pc = (char*)p->payload;
     if(pc[0] == 0)
          {
      if(pc[1] == 'd')
          {
              memcpy(&SValue, &Value, sizeof(SValue));
                 p = pbuf_alloc(PBUF_TRANSPORT, 60, PBUF_POOL);
                 if (p != NULL)
                 {
                     SValue[0] = 0;
                     SValue[1] = 'M';
                     SValue[2] = ipAdd;
                     pbuf_take(p, (char*)SValue, 60);
                     udp_sendto(upcb, p, addr, port);
                    pbuf_free(p);
                 }
              }
          }
    }

В C# winform, код для отправки udp и udp receive:

private void send_Click(object sender, EventArgs e)
        {
//send 
            string IP = "192.168.1.4";
            byte[] send_msg1;
            send_msg1 = new byte[20];
            send_msg1[0] = 0;
            send_msg1[1] = 'd'; //not able to send this d


            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            IPAddress broadcast = IPAddress.Parse(IP);
            IPEndPoint ep = new IPEndPoint(broadcast, 80);
            s.SendTo(send_msg1, ep);

//receive

            UdpClient udpClient = new UdpClient(80);
            IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
            Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
            char[] returnData = Encoding.ASCII.GetChars(receiveBytes);
            string str = char.ToString(returnData[1]);
            textBox1.Text = str;


     }

В приведенном выше коде при нажатии кнопки ничего не получается и диалоговое окно winform висит

...