为什么chrome无法在dns查找之后直接建立连接?

时间:2018-12-28 00:17:18

标签: c++ google-chrome

我有一个问题,Chrome在建立连接之前正在DNS查找之后等待一些东西。 我的问题->(https://imgur.com/qA5ADOa) 在图片上您可以看到,在dns查找之后存在很大的差距,尽管所有值加起来最大为16ms,但请求花费了313ms。 此图片上的Apache->(https://imgur.com/UI4ToDu)。 apache不会发生什么问题?在这张照片上,您可以很好地看到apache不会发生问题。

我正在用C ++编写一个简单的Web服务器,只是为了练习。我使用Chrome浏览器测试了网络服务器。代码非常简单,没有错误处理,这是套接字创建后具有硬编码响应的部分:

std::memset(&myAddr, 0, sizeof(myAddr));
myAddr.sin_family = AF_INET;
myAddr.sin_addr.s_addr = INADDR_ANY;
myAddr.sin_port = htons(80);

bind(acceptSock, (sockaddr *)&myAddr, sizeof(myAddr));

listen(acceptSock, 5);

clientSock = accept(acceptSock, (sockaddr *)&clientAddr, &clientAddrLen);

std::vector<char> recvbuf(BUFFER_LENTH);
recv(clientSock, &recvbuf[0], recvbuf.size(), 0);

std::ifstream file("index.html");
if (file.is_open()) {
    std::string content;
    std::string buf;
    while (std::getline(file, buf)) {
        content += buf;
        buf.clear();
    }

    file.close();

    size_t contentLength = content.size();

    std::string sendbuf = "HTTP/1.1 200 OK\r\n";
    sendbuf += "Content-Type: text/html; charset=UTF-8\r\n";
    sendbuf += "Content-Length: " + std::to_string(contentLength) + "\r\n";
    sendbuf += "Server: meinWebServer\r\n";
    sendbuf += "\r\n";
    sendbuf += content;

    send(clientSock, sendbuf.c_str(), sendbuf.size(), 0);
}
  • 我该怎么做才能防止此问题?
  • 为什么查找后Chrome等待什么?

0 个答案:

没有答案