title: Send HTTP response using C socket
body: <p>I`m trying to send HTTP response to browser</p>
  
  <pre><code>char *reply = 
  "HTTP/1.1 200 OK\n"
  "Date: Thu, 19 Feb 2009 12:27:04 GMT\n"
  "Server: Apache/2.2.3\n"
  "Last-Modified: Wed, 18 Jun 2003 16:05:58 GMT\n"
  "ETag: \"56d-9989200-1132c580\"\n"
  "Content-Type: text/html\n"
  "Content-Length: 15\n"
  "Accept-Ranges: bytes\n"
  "Connection: close\n"
  "\n"
  "sdfkjsdnbfkjbsf";
  
  int sd = socket(PF_INET, SOCK_STREAM, 0);
  
  struct sockaddr_in addr;
  bzero(&amp;addr, sizeof(addr));
  addr.sin_family = AF_INET;
  addr.sin_port = htons(8081);
  addr.sin_addr.s_addr = INADDR_ANY;
  
  if(bind(sd,&amp;addr,sizeof(addr))!=0)
  {
      printf("bind error\n");
  }
  
  if (listen(sd, 16)!=0)
  {
      printf("listen error\n");
  }
  
  for(;;)
  {
      int size = sizeof(addr);
      int client = accept(sd, &amp;addr, &amp;size);
  
      if (client &gt; 0)
      {
          printf("client connected\n");
          send(client, reply, sizeof(reply), 0);
      }
  }
  </code></pre>
  
  <p>but my browser cant understand this, waits for a long time and then print smth strange. I guess my response is wrong, but I dont know how to fix. Any ideas?</p>