int main(int argc, char *argv[]) { // check arguments if (argc != NUM_ARGS) { std::cerr << "usage: " << argv[0] << "from-remote-file to-local-file " "buffer-size error-percent window-size remote-machine " "remote-port" << std::endl; return EXIT_FAILURE; } // Initialize errors sendErr_init(atof(argv[ARG_PERR]), DROP_ON, FLIP_ON, DEBUG_ON, RSEED_OFF); // Create client try { Client rcopy(argv[ARG_FROM], argv[ARG_TO], atoi(argv[ARG_BUFSZ]), atof(argv[ARG_PERR]),atoi(argv[ARG_WINSZ]), argv[ARG_REMNAME], argv[ARG_REMPORT]); rcopy.Run(); } catch (Exception &e) { std::cerr << e.What() << std::endl; return EXIT_FAILURE; } return EXIT_SUCCESS; }
int main(int argc, char const *argv[]) { int serverSocket = -1; in_port_t serverPort = 0; if (argc != 2) { fprintf(stderr, "Usage: %s <error>\n", argv[0]); exit(1); } serverSocket = startServer(&serverPort); if (serverSocket < 0) { exit(serverSocket); } double errorRate; sscanf(argv[1], "%lf", &errorRate); sendErr_init(errorRate, DROP_ON, FLIP_ON, DEBUG_OFF, RSEED_OFF); clientList->maxSocket = DEFAULT_MAX_SOCKET; printf("Server is using port %d\n", ntohs(serverPort)); for(;;) { fd_set fdSet; // static struct timeval timeout; // timeout.tv_sec = 1; // timeout.tv_usec = 0; FD_ZERO(&fdSet); FD_SET(serverSocket, &fdSet); setActiveClientsForSelect(&fdSet); if (select(clientList->maxSocket+1, &fdSet, NULL, NULL, NULL) < 0){ perror("main:select"); exit(-5); } else { if (FD_ISSET(serverSocket, &fdSet)) { acceptNewClient(serverSocket); } checkActiveClientsAfterSelect(&fdSet); } } close(serverSocket); return 0; }
int main(int argc, char *argv[]) { char *remote_file_name; char *local_file_name; uint32_t buf_size; uint32_t window_size; if (argc != 8) { fprintf(stderr, "usage: %s <remote_file_name> <local_file_name> <buf_size> <error_rate> <window_size> <remote-machine> <remote-port>\n" , argv[0]); exit(-2); } // Save remote file name if (strlen(argv[1]) > MAX_FILE_NAME_LEN) { fprintf(stderr, "ERROR: Remote filename exceeds maximum allowed length\n"); exit(1); } remote_file_name = argv[1]; // Save local file name if (strlen(argv[2]) > MAX_FILE_NAME_LEN) { fprintf(stderr, "ERROR: Local filename exceeds maximum allowed length\n"); exit(1); } local_file_name = argv[2]; buf_size = atoi(argv[3]); sendErr_init(atof(argv[4]), DROP_ON, FLIP_ON, DEBUG_OFF, RSEED_OFF); window_size = atoi(argv[5]); rcopy_runloop(argv[6], atoi(argv[7]), remote_file_name, local_file_name, buf_size, window_size); return 0; }