Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define BUFFER_MAX 1024
- #define DATA_SIZE 1016
- unsigned int File_size(char* fname){
- FILE *fa = fopen(fname, "rb");
- fseek(fa, 0, SEEK_END);
- unsigned int fileSize = ftell(fa);
- rewind(fa);
- fclose(fa);
- return fileSize;
- }
- int main (int argc, char* argv[]){
- unsigned char packet_number_check;
- unsigned int sent =0;
- unsigned char packet_number =0;
- unsigned int data = 0;
- char arr[BUFFER_MAX];
- unsigned int n = 348648;//File_size(argv[1]);
- FILE *fa = fopen(argv[1], "rb");
- arr[0] = (n >> 24) & 0xFF;
- arr[1] = (n >> 16) & 0xFF;
- arr[2] = (n >> 8) & 0xFF;
- arr[3] = n & 0xFF;
- strcpy((arr+4), argv[1]);
- //**************************************************
- //recieve
- unsigned int recieved_n = (arr[0] << 24) + (arr[1] << 16) + (arr[2] << 8) + (arr[3]);
- //printf("%s", &arr[4]);
- FILE * fb = fopen("recieved.png", "wb");
- fprintf(fb, "asdf");
- while (sent <= n){
- //**********************
- //send
- arr[0] = packet_number++;
- for (int i =0; i<DATA_SIZE; ++i){
- arr[i+1] = getc(fa);
- }
- sent += DATA_SIZE;
- //**************
- // recieve
- //printf("%d %d\n", packet_number_check++, (unsigned char) arr[0]);
- if (packet_number_check++ != (unsigned char) arr[0])
- printf("packet number check failed, %d, %d\n", packet_number_check,(unsigned char) arr[0]);
- for (int i=0; i<DATA_SIZE; ++i){
- if(data<=recieved_n){
- printf("DONE\n");
- goto end;
- }
- fprintf(fb, "%c", arr[i+1]);
- data++;
- }
- end:
- fclose(fa);
- fclose(fb);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement