⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 15.6.1 加载套接字库.txt

📁 网上第一本以TXT格式的VC++深入详解孙鑫的书.全文全以TXT格式,并每一章节都分了目录,清晰易读
💻 TXT
字号:
15.6.1 加载套接字库
本章仍采用前面章节已经介绍的套接字来编写这个聊天网络程序。根据前面的知识,我们知道这时
第一步应该加载套接字库,井进行版本协商。在 MFC中,提供了一个完成这种功能的函数: 
AfxSocketInit,该函数的声明原型如下所示 : 
BOOL AfxSocketInit( WSADATA* lpwsaData = NULL ); 
AfxSocketInit函数有一个参数,是指向 WSADATA结构体的指针。该函数内部将调用 WSAStartup函
数来加载套接字库,并且该函数加载的是1. 1版本的套接字库。如果读者有兴趣的话,可以在 MFC
提供的源代码中查看一下该函数的源代码。使用这个函数还有一个好处,它可以确保应用程序在终
止之前,调用 WSACleanup函数以终止对套接字库的使用。并且利用 AfxSocketlnit函数加载套接字
库时,不需要为工程链接 ws2_32 .lib库文件。
如果函数调用成功, AfxSocketInit将返回非 0值 :否则返回 0。
但应注意,应该在应用程序类(即工程中派生于 CWinApp类的那个类〉重载的 Initlnstance函数中
调用 AfxSocketlnit函数。本例就在 CChatApp类的 InitInstance函数调用 AfxSocketlnit函数,
在InitInstance函数的开始位置添加下述例 15-8所示代码。
例 15-8 
if ( ! AfxSocketInit ())
 
{


AfxMessageBox("加载套接字库失败! " ) ; 
return FALSE ; 
上述例 15-8所示代码调用了 AfxSocketlnit函数,并对其返回值进行判断,如果返回的是 0值,即
加载套接字库和版本协商操作失败,则弹出一个消息框,告诉用户:"加载套接字库失败!",然后 
Initlnstance函数返回 FALSE,这样, Chat程序就不能继续运行了。
因为在程序中调用了 AfxSocketInit这个函数,所以需要包含相应的头文件: Afxsock.h。这里,我
们在 Chat工程的 stdafx.h中添加下述代码,将该头文件包含到工程中。 stdafx.h是一个预编译头
文件,在该文件中包含了 MFC应用程序运行所需的一些必要的头文件, 
例如该文件包含了 afxwin.h文件,后者就包括了 MFC核心和标准的组件。对于所有的 MFC程序来说,
它们第一个要包含的头文件就是 stdafx.h这个预编译的头文件。 
#include <Afxsock .h> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -