CGopherConnection 类
管理与 Gopher Internet 服务器的连接。
注意
我们已弃用 CGopherConnection
、CGopherFile
、CGopherFileFind
、CGopherLocator
类及其成员,因为它们在 Windows XP 平台上不起作用,但它们在早期平台上依然有效。
语法
class CGopherConnection : public CInternetConnection
成员
公共构造函数
名称 | 描述 |
---|---|
CGopherConnection::CGopherConnection | 构造 CGopherConnection 对象。 |
公共方法
名称 | 描述 |
---|---|
CGopherConnection::CreateLocator | 创建 CGopherLocator 对象以在 gopher 服务器上查找文件。 |
CGopherConnection::GetAttribute | 检索有关 gopher 对象的属性信息。 |
CGopherConnection::OpenFile | 打开 gopher 文件。 |
备注
gopher 服务是 MFC WinInet 类识别的三项 Internet 服务之一。
CGopherConnection
类包含一个构造函数和另外三个管理 gopher 服务的成员函数:OpenFile、CreateLocator 和 GetAttribute。
若要与 gopher Internet 服务器通信,必须先创建 CInternetSession 的实例,然后调用 CInternetSession::GetGopherConnection,它会创建 CGopherConnection
对象并返回指向它的指针。 请勿直接创建 CGopherConnection
对象。
若要详细了解 CGopherConnection
如何与其他 MFC Internet 类配合工作,请参阅使用 WinInet 进行 Internet 编程一文。 有关使用其他两项受支持的 Internet 服务(FTP 和 HTTP)的详细信息,请参阅 CHttpConnection 和 CFtpConnection 类。
继承层次结构
CGopherConnection
要求
标头:afxinet.h
CGopherConnection::CGopherConnection
调用此成员函数来构造 CGopherConnection
对象。
CGopherConnection(
CInternetSession* pSession,
HINTERNET hConnected,
LPCTSTR pstrServer,
DWORD_PTR dwContext);
CGopherConnection(
CInternetSession* pSession,
LPCTSTR pstrServer,
LPCTSTR pstrUserName = NULL,
LPCTSTR pstrPassword = NULL,
DWORD_PTR dwContext = 0,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER);
参数
pSession
指向相关 CInternetSession 对象的指针。
hConnected
当前 Internet 会话的 Windows 句柄。
pstrServer
指向包含 FTP 服务器名称的字符串的指针。
dwContext
操作的上下文标识符。 dwContext 标识 CInternetSession::OnStatusCallback 返回的操作的状态信息。 默认设置为 1;但是,可以为操作显式分配特定的上下文 ID。 该对象及其执行的任何工作都将与该上下文 ID 相关联。
pstrUserName
指向一个以 NULL 结尾的字符串的指针,该字符串指定要登录的用户的名称。 如果为 NULL,默认为匿名。
pstrPassword
指向一个以 NULL 结尾的字符串的指针,该字符串指定用于登录的密码。 如果 pstrPassword 和 pstrUserName 均为 NULL,则默认匿名密码是用户的电子邮件名称。 如果 pstrPassword 为 NULL(或空字符串),但 pstrUserName 不是 NULL,则使用空白密码。 下表描述了 pstrUserName 和 pstrPassword 的四种可能设置的行为:
pstrUserName | pstrPassword | 发送到 FTP 服务器的用户名 | 发送到 FTP 服务器的密码 |
---|---|---|---|
NULL 或“ ” | NULL 或“ ” | “匿名” | 用户的电子邮件名称 |
非 NULL 字符串 | NULL 或“ ” | pstrUserName | [.] |
NULL 非 NULL 字符串 | ERROR | ERROR | |
非 NULL 字符串 | 非 NULL 字符串 | pstrUserName | pstrPassword |
nPort
标识要在服务器上使用的 TCP/IP 端口的数字。
注解
千万不要直接创建 CGopherConnection
, 而是调用 CInternetSession::GetGopherConnection,它会创建 CGopherConnection
对象并返回指向它的指针。
CGopherConnection::CreateLocator
调用此成员函数以创建 gopher 定位符,以查找或标识 gopher 服务器上的文件。
CGopherLocator CreateLocator(
LPCTSTR pstrDisplayString,
LPCTSTR pstrSelectorString,
DWORD dwGopherType);
static CGopherLocator CreateLocator(LPCTSTR pstrLocator);
static CGopherLocator CreateLocator(
LPCTSTR pstrServerName,
LPCTSTR pstrDisplayString,
LPCTSTR pstrSelectorString,
DWORD dwGopherType,
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER);
参数
pstrDisplayString
指向一个字符串的指针,该字符串包含要检索的 gopher 文档或目录的名称。 如果 pstrDisplayString 参数为 NULL,则返回 gopher 服务器的默认目录。
pstrSelectorString
指向选择器字符串的指针,该字符串将被发送到 gopher 服务器以检索项。 pstrSelectorString 可以为 NULL。
dwGopherType
这指定 pstrSelectorString 引用目录还是文档,以及请求是 gopher 还是 gopher+。 请参阅 Windows SDK 中的 GOPHER_FIND_DATA 结构的属性。
pstrLocator
指向标识要打开的文件的字符串的指针。 通常,此字符串是从调用 CGopherFileFind::GetLocator 返回的。
pstrServerName
指向包含 gopher 服务器名称的字符串的指针。
nPort
标识此连接的 Internet 端口的数字。
返回值
CGopherLocator 对象。
备注
成员函数的静态版本要求指定服务器,而非静态版本使用连接对象中的服务器名称。
若要从 gopher 服务器检索信息,应用程序必须首先获取 gopher 定位符。 然后,应用程序必须将定位符视为不透明标记(也就是说,应用程序可以使用定位符,但不能直接操作或比较它)。 应用程序通常使用定位符调用 CGopherFileFind::FindFile 成员函数来检索特定信息片段。
CGopherConnection::GetAttribute
调用此成员函数可从 gopher 服务器检索有关项的特定属性信息。
BOOL GetAttribute(
CGopherLocator& refLocator CString strRequestedAttributes,
CString& strResult,);
参数
refLocator
对 CGopherLocator 对象的引用。
strRequestedAttributes
一个用空格分隔的字符串,指定所请求的属性的名称。
strResult
对接收定位符类型的 CString 的引用。
返回值
如果成功,则不为 0;否则为 0。 如果调用失败,可能会调用 Win32 函数 GetLastError 以确定错误原因。
CGopherConnection::OpenFile
调用此成员函数以打开 gopher 服务器上的文件。
CGopherFile* OpenFile(
CGopherLocator& refLocator,
DWORD dwFlags = 0,
LPCTSTR pstrView = NULL,
DWORD_PTR dwContext = 1);
参数
refLocator
对 CGopherLocator 对象的引用。
dwFlags
INTERNET_FLAG_* 标志的任意组合。 有关 INTERNET_FLAG_* 标志的详细信息,请参阅 CInternetSession::OpenUrl。
pstrView
指向文件视图字符串的指针。 如果服务器上存在文件的多个视图,则此参数指定要打开的文件视图。 如果 pstrView 为 NULL,则使用默认文件视图。
dwContext
要打开的文件的上下文 ID。 有关 dwContext 的详细信息,请参阅“注解”。
返回值
指向要打开的 CGopherFile 对象的指针。
注解
替代 dwContext 默认值,以将上下文标识符设置为所选值。 上下文标识符与其 CInternetSession 对象创建的 CGopherConnection
对象的这个特定操作相关联。 值返回到 CInternetSession::OnStatusCallback,以提供标识它的操作的状态。 有关上下文标识符的详细信息,请参阅 Internet 首要步骤:WinInet 一文。
另请参阅
CInternetConnection 类
层次结构图
CFtpConnection 类
CHttpConnection 类
CInternetConnection 类
CGopherLocator 类
CGopherFile 类
CInternetSession 类