网络聊天室程序(MFC:利用win32的扩展函数):
int WSAStartup(
一、加载套接字库:
//本程序要用到winsock2版本的函数,所以还要自己调用WSAStartup函数。将帮助文档中的例子代码复制
//放到CChatApp的InitInstance()函数中,并作相应修改,还需包含头文件#include <winsock2.h>和链接库
//文件ws2_32.lib(Alt+F7):
CChatApp::~CChatApp()
{
三、CChatDlg添加成员变量SOCKET m_socket,并初始化为0,加析构:
CChatDlg::~CChatDlg(){
四、添加初始化套接字库的函数(1、创建套接字 2、绑定套接字 3、注册网络读取事件),并在OnInitDi
int WSAStartup(
WORD wVersionRequested,);
LPWSADATA lpWSAData
一、加载套接字库:
//本程序要用到winsock2版本的函数,所以还要自己调用WSAStartup函数。将帮助文档中的例子代码复制
//放到CChatApp的InitInstance()函数中,并作相应修改,还需包含头文件#include <winsock2.h>和链接库
//文件ws2_32.lib(Alt+F7):
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 ); //请求Winsock2.2版本,也是最高版本
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) {
// WSACleanup( ); 放到析构函数中
return false; //false
}二、在App中增加析构函数终止对套接字库的使用:
CChatApp::~CChatApp()
{
WSACleanup();//终止对套接字的使用}
三、CChatDlg添加成员变量SOCKET m_socket,并初始化为0,加析构:
CChatDlg::~CChatDlg(){
if(m_socket)}
closesocket(m_socket);
四、添加初始化套接字库的函数(1、创建套接字 2、绑定套接字 3、注册网络读取事件),并在OnInitDi