Advertisement
Lionek1437

PSI test v C

Apr 3rd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define BUFFER_MAX 1024
  6. #define DATA_SIZE 1016
  7.  
  8. unsigned int File_size(char* fname){
  9. FILE *fa = fopen(fname, "rb");
  10. fseek(fa, 0, SEEK_END);
  11. unsigned int fileSize = ftell(fa);
  12. rewind(fa);
  13. fclose(fa);
  14. return fileSize;
  15. }
  16.  
  17.  
  18. int main (int argc, char* argv[]){
  19. unsigned char packet_number_check;
  20. unsigned int sent =0;
  21. unsigned char packet_number =0;
  22. unsigned int data = 0;
  23. char arr[BUFFER_MAX];
  24. unsigned int n = 348648;//File_size(argv[1]);
  25.  
  26. FILE *fa = fopen(argv[1], "rb");
  27.  
  28. arr[0] = (n >> 24) & 0xFF;
  29. arr[1] = (n >> 16) & 0xFF;
  30. arr[2] = (n >> 8) & 0xFF;
  31. arr[3] = n & 0xFF;
  32. strcpy((arr+4), argv[1]);
  33. //**************************************************
  34. //recieve
  35. unsigned int recieved_n = (arr[0] << 24) + (arr[1] << 16) + (arr[2] << 8) + (arr[3]);
  36. //printf("%s", &arr[4]);
  37. FILE * fb = fopen("recieved.png", "wb");
  38. fprintf(fb, "asdf");
  39.  
  40.  
  41.  
  42. while (sent <= n){
  43. //**********************
  44. //send
  45. arr[0] = packet_number++;
  46. for (int i =0; i<DATA_SIZE; ++i){
  47. arr[i+1] = getc(fa);
  48. }
  49. sent += DATA_SIZE;
  50.  
  51. //**************
  52. // recieve
  53. //printf("%d %d\n", packet_number_check++, (unsigned char) arr[0]);
  54. if (packet_number_check++ != (unsigned char) arr[0])
  55. printf("packet number check failed, %d, %d\n", packet_number_check,(unsigned char) arr[0]);
  56. for (int i=0; i<DATA_SIZE; ++i){
  57. if(data<=recieved_n){
  58. printf("DONE\n");
  59. goto end;
  60. }
  61. fprintf(fb, "%c", arr[i+1]);
  62. data++;
  63. }
  64. end:
  65. fclose(fa);
  66. fclose(fb);
  67.  
  68. }
  69.  
  70.  
  71. return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement