Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
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;
}