hai
unknown
plain_text
9 months ago
1.4 kB
4
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