Windows Internet编程主要包括两方面:
l 服务器端
l 客户端
WinInet编程
Internet客户端主要实现的功能,主要是通过Internet协议(HTTP、FTP等)获取网络数据源(服务器)的信息。如,客户端可以访问服务器,获得天气预报、股票加个、新闻数据等信息。
MFC为Internet客户端程序提供了专门的Win32 Internet扩展接口,即WinInet。
在编写Wininet客户端程序时,可以直接调用Win32函数,也可以使用WinInet类库。
WinInet为通用互联网协议(HTTP、FTP和Gopher)提供了统一的函数集,采用熟悉的Win32 API接口。
WinInet实际上是包装在WinSock之上的,WinInet=WinSock+TCP/IP栈+Internet协议。
使用WinInet进行客户端开发过程:
1、 建立连接
2、 发送请求
3、 关闭连接
C++ Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
|
#include <afxinet.h>
CInternetSession InetSession;
CString strLine;
CInternetFile *pInetFile = NULL;
try
{
pInetFile = (CInternetFile *)InetSession.OpenURL(strUrl);
}
catch (CInternetException *pException)
{
pInetFile = NULL;
pException->Delete();
}
CString strShowTxt;
};
if (pInetFile)
{
))
{
/*
LPCTSTR lpLine = strLine.GetBuffer(strLine.GetLength());
int nBufferSize = MultiByteToWideChar(CP_UTF8, 0,
(LPCSTR)lpLine, -1,
NULL, 0);
wchar_t *pBuffer = new wchar_t[nBufferSize+1];
MultiByteToWideChar(CP_UTF8, 0,
(LPCSTR)lpLine, -1 ,
pBuffer, nBufferSize*sizeof(wchar_t));
strShowTxt = strShowTxt + (CString)pBuffer + _T("\r\n");
free(pBuffer);
*/
strShowTxt = strShowTxt + (CString)sRecived + _T("\r\n");
}
}
|