Я хочу получить значения, которые передаются из 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 висит