增加功能:
1、从文件中读取网页并返回给客户端,而不是把网页代码写死在代码中。
局限:
1、还不能根据URL地址中的参数,访问指定页面
2、仍然是单线程
复制代码 代码如下:
/
// response
// send header
memset(buffer, 0, BUFFER_SIZE);
sprintf_s(buffer, HEADER, GetFileLength(strPath));
if (send(socketClient, buffer, strlen(buffer), 0) < 0)
{
printf("Send data failed!");
break;
}
ifstream fin(strPath.c_str(), ios::in | ios::binary);
if (fin.is_open())
{
memset(buffer, 0, BUFFER_SIZE);
while (fin.read(buffer, BUFFER_SIZE - 1))
{
if (send(socketClient, buffer, strlen(buffer), 0) < 0)
{
printf("Send data failed!");
break;
}
memset(buffer, 0, BUFFER_SIZE);
}
if (send(socketClient, buffer, strlen(buffer), 0) < 0)
{
printf("Send data failed!");
break;
}
}
fin.close();
closesocket(socketClient);
}
closesocket(socketServer);
WSACleanup();
return 0;
}
long GetFileLength(string strPath)
{
ifstream fin(strPath.c_str(), ios::in | ios::binary);
fin.seekg(0, ios_base::end);
streampos pos = fin.tellg();
long lSize = static_cast
fin.close();
return lSize;
}
演示图
以上所述就是本文对于使用C++实现简单web服务器的全部代码了,希望大家能够喜欢。



