CGopherConnection 类

管理与 Gopher Internet 服务器的连接。

注意

我们已弃用 CGopherConnectionCGopherFileCGopherFileFindCGopherLocator 类及其成员,因为它们在 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 服务的成员函数:OpenFileCreateLocatorGetAttribute

若要与 gopher Internet 服务器通信,必须先创建 CInternetSession 的实例,然后调用 CInternetSession::GetGopherConnection,它会创建 CGopherConnection 对象并返回指向它的指针。 请勿直接创建 CGopherConnection 对象。

若要详细了解 CGopherConnection 如何与其他 MFC Internet 类配合工作,请参阅使用 WinInet 进行 Internet 编程一文。 有关使用其他两项受支持的 Internet 服务(FTP 和 HTTP)的详细信息,请参阅 CHttpConnectionCFtpConnection 类。

继承层次结构

CObject

CInternetConnection

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 类