MYCP的CGCBase模块代码写的很好。各个接口是干吗用的,看函数名就一目了然了。
如果学过Java,JSP,Servlet 的话对cgcRequest,cgcResponse这些类的功能应该挺熟悉的。
其他的类都是辅助类,cgcString 是辅助类,用于转码。从Unicode转到UTF8,格式化输出等。格式化输出只是对vsprintf的一个封装。
例:
tstring cgcString::Format(const TCHAR * format,...){
if (format == 0) return _T("");
TCHAR formatmsg[gConstMaxFormatSize];
va_list vl;
va_start(vl, format);
int len = vsnprintf(formatmsg, gConstMaxFormatSize, format, vl);
//int len = _vsntprintf(formatmsg, gConstMaxFormatSize, format, vl);
//int len = _vsntprintf_s(formatmsg, gConstMaxFormatSize, gConstMaxFormatSize, format, vl);
va_end(vl);
if (len > gConstMaxFormatSize)
len = gConstMaxFormatSize;
formatmsg[len] = '\0';
return tstring(formatmsg, len);
}
这些定义的web服务器的基本接口的实现在\mycp_1_0_3\mycp\src\CGCP\CGC目录下。如class CRequestImpl 实现了cgcRequest的接口。
目前只是把接口看了,一个web服务器的基本功能了解一下。接下来要研究一下具体实现。
水平有限慢慢研究了。