Advertisement
Bewin

ftp_client

Apr 9th, 2025
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.84 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <sys/socket.h>
  4. #include <arpa/inet.h>
  5. #include <stdlib.h>
  6. #include <unistd.h>
  7. int main(void)
  8. {
  9.     FILE *fp;
  10.     int n,s;
  11.     char name[100],rcvmsg[100],rcvg[100],fname[100];
  12.     int socket_desc;
  13.     struct sockaddr_in server_addr;
  14.    
  15.    
  16.     // Create socket:
  17.     socket_desc = socket(AF_INET, SOCK_STREAM, 0);
  18.    
  19.     if(socket_desc < 0){
  20.         printf("Unable to create socket\n");
  21.         return -1;
  22.     }
  23.    
  24.     printf("Socket created successfully\n");
  25.    
  26.     // Set port and IP the same as server-side:
  27.     server_addr.sin_family = AF_INET;
  28.     server_addr.sin_port = htons(2000);
  29.     server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
  30.    
  31.     // Send connection request to server:
  32.     if(connect(socket_desc, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0){
  33.         printf("Unable to connect\n");
  34.         return -1;
  35.     }
  36.     printf("Connected with server successfully\n");
  37.    
  38.     // Get input from the user:
  39.     printf("Enter filename ");
  40.     scanf("%s",name);
  41.     printf("Enter the new file name\t");
  42.     scanf("%s",fname);
  43.     fp=fopen(fname,"w");
  44.     send(socket_desc,name,sizeof(name),0);
  45.     while(1){
  46.              s=recv(socket_desc,rcvg,100,0);
  47.              rcvg[s]='\0';
  48.              if(strcmp(rcvg,"error")==0)
  49.              {
  50.                  printf("File is not available\n");
  51.                  exit(1);
  52.              }
  53.              if(strcmp(rcvg,"completed")==0)
  54.              {
  55.                  printf("File is transferred...\n");
  56.                  fclose(fp);
  57.                  break;
  58.              }
  59.              else
  60.              {
  61.                  fputs(rcvg,stdout);
  62.                  fprintf(fp,"%s",rcvg);
  63.                  
  64.              }
  65.     }
  66.    
  67.     // Close the socket:
  68.     close(socket_desc);
  69.    
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement