TCP SERVER program

                  CREATE SERVER

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
int main()
{
 int sfd = socket(AF_INET,SOCK_STREAM,0);
 if(sfd == -1)
 {
  printf("socket error : ");
  perror("socket error : ");
  exit(1);
 }
 else
 {
  printf("socket created successfull sfd : %d\n",sfd);
  struct sockaddr_in server,client;
  server.sin_family = AF_INET;
  server.sin_port = htons( 8000);
  server.sin_addr.s_addr = INADDR_ANY;
  int b = bind(sfd,(struct sockaddr *)&server,sizeof(server));
  if(b == -1)
  {
   perror("bind failed :");
   exit(1);
  }
  else
  {
   printf("Bind successful\n");
   listen(sfd,5);//itrative server
  while(1)
  {
   int len = sizeof(client);
   int cfd = accept(sfd,(struct sockaddr *)&client,&len);
   if(cfd == -1)
   {
    perror("accept failed :");
    exit(1);
   }
   else
   {
   int ret = fork();
   if(ret == 0)
   {
  
   printf("client connected : %s\n",inet_ntoa(client.sin_addr));
 
   while(1)
   {
    printf("waiting for msg from client:\n");
    char buff[50];
    int r = read(cfd,buff,sizeof(buff));
    if(r == -1)
    {
     perror("read failed:");
     exit(1);
    }
    else if(r == 0)
    {
     printf("client disconnected :%s\n",inet_ntoa(client.sin_addr));
     exit(0);
    }
    else
    {
     buff[r] = '\0';
     printf("message read : %s\n",buff);
   
    }
   // printf("enter a msg to client : \n");
   // fgets(buff,50,stdin); 
    int w = write(cfd,buff,sizeof(buff));
    if(w == -1)
    {
     perror("write failed:");
     exit(1);
    }
    else
    {
     printf("send successfully\n");
    }
   }
   }
  }
 }
}
exit(0);
 }
}

Comments