通常的网络Socket编程,直接使用CSocket就可以了,但是作为一些偏底层的编程,常常会用到一些不常用的API函数和一些API的非常规用法,这时,就要用到Socket2。使用Socket2就不像Socket1.1那么简单,不仅要在适当的位置加入头文件,还需要考虑到合适的静态链接库(win32 static LIBrary)。同时,要完全使用Socket2中的各项功能,有时仅仅安装了Microsoft Visual C++6.0 (SP6),即使是使用了“完全安装”,仍然会缺少一些头文件和库文件,这是因为其中很多头文件和库文件在“Microsoft Platform SDK”中,因此还需要安装“Microsoft Platform SDK”。 使用Socket2,需要在合适的头文件中,加入如下语句: - #include <winsock2.h>
有时,除了需要必要的头文件之外,还需要一些静态链接库,则这时有两种方式加载静态链接库,例如要使用头文件ws2tcpip.h和静态链接库ws2_32.lib文件,则首先在合适的位置加入头文件代码:- #include <ws2tcpip.h>
然后,一种方式是上面头文件之后加入如下语句:- #pragma comment(lib, "ws2_32.lib")
另一种方式是在Microsoft Visual C++的编译环境中加入,具体操作方式为,单击VC的“Project/Setting”菜单项,然后在弹出的“Project Settings”对话框中,选择“Link”选项卡,在“Object/library modules”项中输入ws2_32.lib,如图2.8所示。 | 图2.8 通过配置包含静态链接库 | 然后在系统初始化的时候,对Socket2进行初始化,初始化的代码如下:- WORD wVersionRequested;
- WSADATA wsaData;
- wVersionRequested = MAKEWORD(2,0);
- int err=WSAStartup( wVersionRequested, &wsaData );
- if (err != 0 )
- {
- MessageBox("当前系统,不支持Socket2的运行,但当前程序必须使用Socket2或以上。");
- return;
- }
|