Demonstration code is a standard SSS example with this task added.
void UDPTask()
{
unsigned char packet[100];
struct sockaddr_in addr_client = {0};
int sizeof_addr_client = sizeof(addr_client);
struct sockaddr_in addr_server = {AF_INET, htons(49213)};
addr_server.sin_addr.s_addr = INADDR_ANY;
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (bind(sockfd, (struct sockaddr *)&addr_server, sizeof(addr_server)) < 0)
{
printf("============================BIND FAILED\n");
}
#define PING_SIZE 1100
char ping[PING_SIZE];
ping[0] = 0x04;
ping[PING_SIZE-1] = 0x7c;
printf("-----------------------UDP TASK\n");
while(TRUE)
{
int n = recvfrom(sockfd, (char*)packet, 100, 0x100, (struct sockaddr *)&addr_client, &sizeof_addr_client);
printf("----------------------MSG_IN %d %x\n", n, n>0 ? packet[0] : 0);
sendto(sockfd, ping, sizeof(ping), 0x800, (struct sockaddr *) &addr_client, sizeof_addr_client);
}
}