예제 #1
0
int main(int argc, char** argv) {
    init(HOST, PORT);

    if (argc < 2) {
        printf("Usage %s filename\n", argv[0]);
        return -1;
    }

    tabel = tabelcrc(CRCCCITT);

    printf("Speed: %d\n", get_speed(argv[1]));
    printf("Delay: %d\n", get_delay(argv[2]));
    printf("Loss: %lf\n", get_loss(argv[3]));
    printf("Corrupt: %lf\n", get_corrupt(argv[4]));

    transmit(argv[5], get_speed(argv[1]), get_delay(argv[2]), get_loss(argv[3]),
            get_corrupt(argv[4]) );

    free(tabel);
    return 0;
}
예제 #2
0
/*
==================================================================
  MAIN
==================================================================
*/
int main(int argc, char **argv)
{

	
    init(HOST, PORT);
    /*calculez tabel crc*/
		crc_table = tabelcrc(CRCCCITT);
    /*trimit primul cadru*/
		send_first_frame(extract_parameters(argv[1]));
    char *filename2=calloc(1000,sizeof(char));
    unsigned short BUF = (MAX_SEQ + 1) / 2;
    strcpy(filename2,"recv_");
		strcat(filename2,filename);
		
    fd = open(filename2, O_WRONLY | O_CREAT, 0644);
    if (fd < 0) 
		{
				perror("Failed to open file\n");
    }
    /*trimit datele*/
		send_data(BUF);	
    close(fd);
    return 0;
}
예제 #3
0
void kermit_send(int fd_out, int fd_in, char *file_list[], int list_size) {
    unsigned char buffer[0x64], response[0x64];
    unsigned char len, seq;
    int i, file, response_length;
    char *ptr;

    tabel = tabelcrc(CRCCCITT);

    seq = 0;

    init_alarm();

    me.maxl = 79;
    me.time = 3;
    me.npad = 0;
    me.padc = 0x00;
    me.eol = '\r';
    me.qctl = '#';
    me.qbin = '&';
    me.chkt = '1';
    me.rept = '~';

    len = 9 + 4;
    set_settings(buffer, me);

    set_hf_send_packet(fd_out, fd_in, buffer, len, &seq, 'S', response, &response_length);

    get_settings(response, &you);

    for(i = 0; i < list_size; i++) {
        file = open(file_list[i], O_RDONLY);

        if(file == -1) {
            fprintf(stderr, "sender: the file %s could not be opened\n", file_list[i]);
            continue;
        }

        ptr = strrchr(file_list[i], '/');

        if(ptr == NULL) {
            len = strlen(file_list[i]);
            memcpy(buffer + 4, file_list[i], len);
        } else {
            len = strlen(ptr + 1);
            memcpy(buffer + 4, ptr + 1, len);
        }
        len += 4;
        set_hf_send_packet(fd_out, fd_in, buffer, len, &seq, 'F', response, &response_length);

        fprintf(stderr, "sender: sending file %s\n", file_list[i]);

        send_file_data(fd_out, fd_in, file, &seq);

        len = 4;
        set_hf_send_packet(fd_out, fd_in, buffer, len, &seq, 'Z', response, &response_length);

        close(file);
    }

    len = 4;
    set_hf_send_packet(fd_out, fd_in, buffer, len, &seq, 'B', response, &response_length);

    free(tabel);
}