int mule_server(int argc, char **argv) { int i; srand(time(NULL)); if (argc > 2) { printf("Too many arguments.....Try again\n"); return 1; } news = malloc(100* sizeof(char *) ); if(news == NULL) { perror("Memory full!"); return 1; } for(i=0; i< 100; i++) { news[i] = malloc(SERVER_BUFFER_SIZE * sizeof(char)); } if (strcmp(argv[0], "mule_server") == 0) { if (argc < 2) { printf("You forget the port...Try again\n"); return 1; } if(udp_start_server(argv[1]) > 0) { return 1; } time_t start_t, end_t; double diff_t; time(&start_t); while(1) { time(&end_t); diff_t = difftime(end_t, start_t); if(diff_t == 1) { udp_send("ff02::1", "8810", "Hello...I am server_mule...I have news for you\n"); time(&start_t); } } } for(int i=0; i< 100; i++) { free(news[i]); } free(news); return 1; }
int udp_cmd(int argc, char **argv) { if (argc < 2) { printf("usage: %s [send|server]\n", argv[0]); return 1; } if (strcmp(argv[1], "send") == 0) { uint32_t num = 1; uint32_t delay = 1000000; if (argc < 5) { printf("usage: %s send <addr> <port> <data> [<num> [<delay in us>]]\n", argv[0]); return 1; } if (argc > 5) { num = atoi(argv[5]); } if (argc > 6) { delay = atoi(argv[6]); } return udp_send(argv[2], argv[3], argv[4], num, delay); } else if (strcmp(argv[1], "server") == 0) { if (argc < 3) { printf("usage: %s server [start|stop]\n", argv[0]); return 1; } if (strcmp(argv[2], "start") == 0) { if (argc < 4) { printf("usage %s server start <port>\n", argv[0]); return 1; } return udp_start_server(argv[3]); } else { puts("error: invalid command"); return 1; } } else { puts("error: invalid command"); return 1; } }