Mercurial > hg > beaglert
view resources/network/udp-client-sweep.c @ 39:638bc1ae2500 staging
Improved readibility of the DIGITAL code in the PRU, using register names instead of aliases and expanding some of the macros, removing unused macros. Binaries were not modified
author | Giulio Moro <giuliomoro@yahoo.it> |
---|---|
date | Wed, 13 May 2015 12:18:10 +0100 |
parents | adcb57fd3d75 |
children |
line wrap: on
line source
/* UDP client in the internet domain */ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> void error(const char *); int main(int argc, char *argv[]) { int sock, n; unsigned int length; struct sockaddr_in server, from; struct hostent *hp; char buffer[256]; if (argc != 3) { printf("Usage: server port\n"); exit(1); } server.sin_family = AF_INET; hp = gethostbyname(argv[1]); if (hp==0) error("Unknown host"); bcopy((char *)hp->h_addr, (char *)&server.sin_addr, hp->h_length); server.sin_port = htons(atoi(argv[2])); length=sizeof(struct sockaddr_in); while (1){ sock= socket(AF_INET, SOCK_DGRAM, 0); if (sock < 0) error("socket"); bzero(buffer,256); // printf("Please enter the message: "); // fgets(buffer,255,stdin); double freq=50; while(1){ freq*=1.001; if(freq>20000) freq=50; sprintf(buffer,"%.4f;",freq); n=sendto(sock,buffer, strlen(buffer),0,(const struct sockaddr *)&server,length); if (n < 0) error("Sendto"); usleep(1000); } } close(sock); return 0; } void error(const char *msg) { perror(msg); exit(0); }