hai

 avatar
unknown
plain_text
4 days ago
1.4 kB
1
Indexable
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#define PORT 5555
#define BUFFER_SIZE 1024

void receive_file(int new_socket)
{
 char buffer[BUFFER_SIZE];
 FILE *fp= fopen("/home/cse/Documents/received_file.txt","wb");
 if(fp==NULL)
 {
  perror("error opening file");
  return;
 }
 int bytes_received;
 while((bytes_received=recv(new_socket,buffer,BUFFER_SIZE,0))>0)
 {
  fwrite(buffer,sizeof(char),bytes_received,fp);
 }
  fclose(fp);
  printf("file received successfully.\n");
}
int main()
{
 int server_fd,new_socket;
 struct sockaddr_in server_addr,client_addr;
 socklen_t addr_size;
 server_fd=socket(AF_INET,SOCK_STREAM,0);

if(server_fd==-1)
{
 perror("socket creation failed");
 exit(1);
}
 server_addr.sin_family=AF_INET;
 server_addr.sin_addr.s_addr=INADDR_ANY;
 server_addr.sin_port=htons(PORT);
 if(bind(server_fd,(struct sockaddr*)&server_addr,sizeof(server_addr))<0)
{
 perror("bind failed");
 exit(1);
}
 if (listen(server_fd,5)<0)
 {
  perror("listen failed");
  exit(1);
 }
 printf("FTP serverlistening on port %d...\n",PORT);
 addr_size=sizeof(client_addr);
 new_socket=accept(server_fd,(struct sockaddr*)&client_addr,&addr_size);
 if(new_socket<0)
 {
  perror("accept failed");
  exit(1);
 }
 printf("client connected.receiving file...\n");
 receive_file(new_socket);
 close(new_socket);
 close(server_fd);
 return 0;
}
Editor is loading...
Leave a Comment