title: How to use thread in my tcpserver program to communicate between two client through server?
body: <pre><code>    int main()
      {
  int sock, connected, bytes_recieved , true = 1;
  char send_data [1024] , recv_data[1024];
  pid_t pid;
  struct sockaddr_in server_addr,client_addr;
  int sin_size;
  
  if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) 
  {
      perror("Socket");
      exit(1);
  }
  
  if (setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&amp;true,sizeof(int)) == -1)   
  {
      perror("Setsockopt");
      exit(1);
  }
  
  server_addr.sin_family = AF_INET;
  server_addr.sin_port = htons(5000);
  server_addr.sin_addr.s_addr = INADDR_ANY;
  bzero(&amp;(server_addr.sin_zero),8);
  
  if (bind(sock, (struct sockaddr *)&amp;server_addr, sizeof(struct sockaddr)) == -1)
  {
      perror("Unable to bind");
      exit(1);
  }
  
  if (listen(sock, 5) == -1)
  {
      perror("Listen");
      exit(1);
  }
  
  printf("\nTCPServer Waiting for client on port 5000\n");
  fflush(stdout);
  
  while(1)
  {
      sin_size = sizeof(struct sockaddr_in);
      connected = accept(sock, (struct sockaddr *)&amp;client_addr,&amp;sin_size);
      printf("\n I got a connection from (%s , %d)\n",    inet_ntoa(client_addr.sin_addr),ntohs(client_addr.sin_port));
                  //fork this process into a child and parent
              pid = fork();
  
      //Check the return value given by fork(), if negative then error,
      //if 0 then it is the child.
              if ( pid == -1)
      {
                  perror("fork()");
              }
      //loop until client closes
      if (pid == 0)
      {
                  /*Child Process*/
  
                  close(sock);
  
          while(1)
          {
              printf("\n SEND (q or Q to quit) : \n");
              gets(send_data);
  
              if (strcmp(send_data , "q") == 0 || strcmp(send_data , "Q") == 0)   
              {
                  send(connected, send_data,strlen(send_data), 0);
                  close(connected);
                  break;
              }
  
              else
  
                  send(connected, send_data,strlen(send_data), 0);
              bytes_recieved = recv(connected,recv_data,1024,0);
              recv_data[bytes_recieved] = '\0';
  
              if (strcmp(recv_data , "q") == 0 || strcmp(recv_data , "Q") == 0)   
              {
                  close(connected);
                  break;
              }
              else
  
              printf("\n RECIEVED DATA = from(%s,%d)\ndata=%s\n" ,inet_ntoa(client_addr.sin_addr),ntohs(client_addr.sin_port), recv_data);
  
              fflush(stdout);
          }
      }
  }
  close(sock);
  return 0;}
  </code></pre>
  
  <p>i want to use the thread for client to client communication.
  but how to create the thread and where i have to create the thread for multi client communication.
  i have also use fork for accessing the multiple client.
  i want to make the multiple client chat program in c using tcp/ip concept
  thanks!!!</p>