Forum Discussion
DBarn22
New Contributor
4 years agoNIOSII/f Truncating UDP packets
I am writing an application using a NIOS II to transmit UDP packets at a modest rate. Using a NIOS II/e, the processing rate was insufficient, so I moved to a NIOS II/f. The packets I need to send ...
DBarn22
New Contributor
4 years agoDemonstration 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); } }