• 大小: 8.37MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-19
  • 语言: C/C++
  • 标签: 网络编程  

资源简介

c++源代码 加 “使用说明.word”文档 能运行

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “HttpProtocol.h“

// 格林威治时间的星期转换
char *week[] = {
“Sun“  
“Mon“
“Tue“
“Wed“
“Thu“
“Fri“
“Sat“
};
 
// 格林威治时间的月份转换
char *month[] = 
{
“Jan“  
“Feb“
“Mar“
“Apr“
“May“
“Jun“
“Jul“
“Aug“
“Sep“
“Oct“
“Nov“
“Dec“
};


UINT CHttpProtocol::ClientNum = 0;
CCriticalSection CHttpProtocol::m_critSect; // 排斥区初始化
HANDLE CHttpProtocol::None = NULL;


CHttpProtocol::CHttpProtocol(void)
{
m_pListenThread = NULL;
m_hwndDlg = NULL;
}

CHttpProtocol::~CHttpProtocol(void)
{
}

bool CHttpProtocol::StartHttpSrv()
{
WORD wVersionRequested = WINSOCK_VERSION;
WSADATA wsaData;
int nRet;
// 启动Winsock
nRet = WSAStartup(wVersionRequested &wsaData); // 加载成功返回0
if (nRet)
{   
// 错误处理
AfxMessageBox(“Initialize WinSock Failed“);
return false;
}
// 检测版本
if (wsaData.wVersion != wVersionRequested)
{    
// 错误处理   
AfxMessageBox(“Wrong WinSock Version“);
return false;
}

m_hExit = CreateEvent(NULL TRUE FALSE NULL);
if (m_hExit == NULL)
{
return false;
}

//创建套接字
m_listenSocket = WSASocket(AF_INET SOCK_STREAM IPPROTO_TCP NULL 0 WSA_FLAG_OVERLAPPED);
if (m_listenSocket == INVALID_SOCKET)
{
// 异常处理
CString *pStr = new CString;
*pStr = “Could not create listen socket“;
SendMessage(m_hwndDlg LOG_MSG (UINT)pStr NULL);
return false;
}

SOCKADDR_IN sockAddr;
LPSERVENT lpServEnt;
if (m_nPort != 0)
{
// 从主机字节顺序转为网络字节顺序赋给sin_port
sockAddr.sin_port = htons(m_nPort);
}
else
{
// 获取已知http服务的端口,该服务在tcp协议下注册
lpServEnt = getservbyname(“http“ “tcp“);
if (lpServEnt != NULL)
{
sockAddr.sin_port = lpServEnt->s_port;
}
else
{
sockAddr.sin_port = htons(HTTPPORT); // 默认端口HTTPPORT=80
}
}

sockAddr.sin_family = AF_INET;
sockAddr.sin_addr.s_addr = INADDR_ANY;  // 指定端口号上面的默认IP接口 

// 初始化content-type和文件后缀对应关系的map
    CreateTypeMap();


// 套接字绑定
nRet = bind(m_listenSocket (LPSOCKADDR)&sockAddr sizeof(struct sockaddr));
if (nRet == SOCKET_ERROR)
{  
// 绑定发生错误
CString *pStr = new CString;
*pStr = “bind() error“;
SendMessage(m_hwndDlg LOG_MSG (UINT)pStr NULL);
closesocket(m_listenSocket); // 断开链接
return false;
}

    // 套接字监听。为客户连接创建等待队列队列最大长度SOMAXCONN在windows sockets头文件中定义
nRet = listen(m_listenSocket SOMAXCONN);
if (nRet == SOCKET_ERROR)
{   
// 异常处理
CString *pStr = new CString;
*pStr = “listen() error“;
SendMessage(m_hwndDlg LOG_MSG (UINT)pStr NULL);
closesocket(m_listenSocket); // 断开链接
return false;
}
// 创建listening进程,接受客户机连接要求
m_pListenThread = AfxBeginThread(ListenThread this);

if (!m_pListenThread)
{
// 线程创建失败
CString *pStr = new CString;
*pStr = “Could not create listening thread“ ;
SendMessage(m_hwndDlg LOG_MSG (UINT)pStr NULL);
closesocket(m_listenSocket); // 断开链接
return false;
}

CString strIP strTemp;
char hostna

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1522  2009-03-05 19:52  HttpServer\Code\bmp26567.bmp

     文件        198  2009-03-05 19:52  HttpServer\Code\bmp30994.bmp

     文件        378  2009-03-05 19:52  HttpServer\Code\bmp30995.bmp

     文件        338  2009-03-05 19:52  HttpServer\Code\bmp30996.bmp

     文件        518  2009-03-05 19:52  HttpServer\Code\cur30977.cur

     文件      16248  2010-04-20 18:43  HttpServer\Code\Debug\BuildLog.htm

     文件     501952  2010-04-20 18:43  HttpServer\Code\Debug\HttpProtocol.obj

     文件     387508  2010-04-20 18:43  HttpServer\Code\Debug\HttpProtocol.sbr

     文件    1559552  2010-04-20 18:43  HttpServer\Code\Debug\HttpServer.bsc

     文件    2171010  2009-04-12 10:04  HttpServer\Code\Debug\HttpServer.exe

     文件       2048  2010-04-20 18:43  HttpServer\Code\Debug\HttpServer.exe.embed.manifest

     文件    2599604  2009-04-12 10:04  HttpServer\Code\Debug\HttpServer.ilk

     文件      61138  2010-04-20 18:43  HttpServer\Code\Debug\HttpServer.obj

     文件   16187392  2010-04-20 18:43  HttpServer\Code\Debug\HttpServer.pch

     文件      12436  2009-04-12 10:04  HttpServer\Code\Debug\HttpServer.res

     文件     347274  2010-04-20 18:43  HttpServer\Code\Debug\HttpServer.sbr

     文件     300497  2010-04-20 18:43  HttpServer\Code\Debug\HttpServerDlg.sbr

     文件     333914  2010-04-20 18:43  HttpServer\Code\Debug\StdAfx.obj

     文件    2789024  2010-04-20 18:43  HttpServer\Code\Debug\StdAfx.sbr

     文件     295936  2009-04-13 18:41  HttpServer\Code\Debug\vc60.idb

     文件     585728  2009-04-12 10:04  HttpServer\Code\Debug\vc60.pdb

     文件     863232  2010-04-20 18:43  HttpServer\Code\Debug\vc80.idb

     文件     831488  2010-04-20 18:43  HttpServer\Code\Debug\vc80.pdb

     文件      19615  2007-06-14 20:59  HttpServer\Code\HttpProtocol.cpp

     文件       3186  2007-06-14 20:39  HttpServer\Code\HttpProtocol.h

     文件      32024  2009-04-11 10:32  HttpServer\Code\HttpServer.aps

     文件       2885  2009-04-13 19:29  HttpServer\Code\HttpServer.clw

     文件       2119  2007-04-07 08:32  HttpServer\Code\HttpServer.cpp

     文件       5025  2009-04-12 10:15  HttpServer\Code\HttpServer.dsp

     文件        545  2007-04-07 08:32  HttpServer\Code\HttpServer.dsw

............此处省略36个文件信息

评论

共有 条评论