使使用用C++制制作作简简单单的的web服服务务器器 ((续续))
增加功能:
1、从文件中读取网页并 回给客户端,而不是把网页代码写死在代码中。
局限:
1、还不能根据URL地址中的参数,访问指定页面
2、仍然是单线程
代码如下: 复制代码
//*****************************************************************************
//@Proj ectName ZY httpd
//@Description my http server
//@ uthor NicoleRobin
//@Date 2015/02/09
//*****************************************************************************
#include
#include
#include
#include
using namespace std;
#define BUFFER_SIZE 1024
#define HOST ""
#define PORT 8 1
#define HE DER "\
HTT P/ 1.1 200 OK\r\n\
Content-Type: text/html; charset=UT F-8\r\n\
Server: ZY http_v 1.0.1\r\n\
Content-Length: %ld\r\n\r\n\
"
const string strPath = "index .html";
#pragma comment(lib, "WS2_32")
// get file size
long GetFileLength(string strPath);
// thread function
int main(int argc, char **argv)
{
// define and init an server sockaddr
sockaddr_in addrServer;
addrServer.sin_family = F_INET ;
addrServer.sin_addr.S_un.S_addr = IN DDR_ NY ;
addrServer.sin_port = htons(PORT);
// init socket dll
WS D T wsaData;
WORD socketVersion = M KEWORD(2, 0);
if (WS Startup(socketVersion, &wsaData) != 0)
{
printf("Init socket dll error!");
exit(1);
}
// create socket
SOCKET socketServer = socket( F_INET, SOCK_ST RE M, 0);
if (SOCKET_ ERROR == socketServer)
{
printf("Create socket error!");
exit(1);
}
// bind server socket host
if (SOCK