rendered paste body#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<stdlib.h>
#include<unistd.h>
void error(char *msg)
{
perror(msg);
exit(1);
}
int main(int argc,char *argv[])
{int sockfd,newsockfd,portno,client,n;
char buffer[256],c[2000];
struct sockaddr_in serv_addr,cli_addr;
FILE *fd;
if(argc<2)
{
fprintf(stderr,"error no port provided\n");
exit(1);
}
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
error("error openin socket\n");
bzero((char *)&serv_addr,sizeof(serv_addr));
portno=atoi(argv[1]);
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=INADDR_ANY;
serv_addr.sin_port=htons(portno);
if(bind(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr))<0)
error("eror on binding");
listen(sockfd,5);
client=sizeof(cli_addr);
printf("server:waiting for client....\n");
newsockfd=accept(sockfd,(struct sockaddr*)&cli_addr,&client);
if(newsockfd<0)
error("error reading from socket");
printf("server:%s\n",buffer);
n=read(newsockfd,buffer,255);
if(n<0)
error("error reading socket\n");
printf("server:%s\n",buffer);
fd=freopen(buffer,"r",stdin)
if(!fd)
{
perror(buffer);
exit(EXIT_STATUS);
}
printf("server:%s found!\n transferring the contents :\n",buffer);
if(fgets(c,2000,stdin)!=NULL);
n=write(newsockfd,c,1999);
if(n<0)
error("error waiting to socket");
}
else
{
printf("server:file not found\n");
n=write(newsockfd,"file not found!\n",15);
if(n<0)
error("error writing to socket");
}
return 0;
}