这个用C++兑现的小型web服务器可以接收浏览器的请求,但是无法把内容发送到浏览器

这个用C++实现的小型web服务器可以接收浏览器的请求,但是无法把内容发送到浏览器
#include <winsock.h>
#include <sys/stat.h>
#include <iostream>
using namespace std;
#define SERVER_PORT 10000         //自定义的服务端口
#define HOSTLEN 256           //主机名长度
#define BACKLOG 10           //同时等待的连接个数

int sendall(int s, char *buf, int *len) {
 int total = 0;           // 已经发送字节数
 int bytesleft = *len;                                   //还剩余多少字节
 int n;
 while(total < *len) {
  n = send(s, buf+total, bytesleft, 0);
  if (n == -1) { break; }
  total += n;
  bytesleft -= n;
 }
 *len = total;           // 返回实际发送出去的字节数
 return n==-1?-1:0;          // 成功发送返回0 失败-1
}

void wrong_req(int sock) {
 char* error_head = "HTTP/1.0 501 Not Implemented\r\n"; //输出501错误
 int len = strlen(error_head);
 if (sendall(sock, error_head, &len) == -1) {   //向客户发送
  printf("Sending failed!");
  return;
 }
char* error_type = "Content-type: text/plain\r\n";  
 len = strlen(error_type);
 if (sendall(sock, error_type, &len) == -1) {
  printf("Sending failed!");
  return;
 }
char* error_end = "\r\n";
 len = strlen(error_end);
 if (sendall(sock, error_end, &len) == -1) {
  printf("Sending failed!");
  return;
 }
char* prompt_info = "The command is not yet completed\r\n";
 len = strlen(prompt_info);
 if (sendall(sock, prompt_info, &len) == -1) {
  printf("Sending failed!");
  return;
 }
}

bool not_exit(char* arguments) {
 struct stat dir_info;
 return (stat(arguments, &dir_info) == -1);