如果有套接字事件发生
便会发送自定义消息 WM_CSOCKT
在头文件定义
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER 》 1000
#define WM_CSOCKT WM_USER+11 //定义自定义消息
class CMyDlg : public CDialog
{
... //省略部分代码
}
头文件 中还要消息响应函数
class CMy2Dlg : public CDialog
{
public:
... //省略部分自动生成代码
CString ip;
SOCKET s; //服务器监听套接字
int port; //服务器端口
CFile file; //文件对象
char buff[100]; //自定义缓冲区
CString str; //字符串变量
HWND h; //窗口实例句柄
public:
SOCKET s; //连接套接字句柄
sockaddr_in addr; //套接字地址信息
WSADATA data; //套接字版本
int i; //循环变量
int n;
afx_msg void Oncsockt1(WPARAM wParam,LPARAM lParam);
//套接字消息响应函数
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnClose(); //省略部分代码
...
}
还需要 消息映射宏中添加套接字消息的消息映射项
将消息与消息响应函数关联
代码如下
... //省略部分代码
BEGIN_MESSAGE_MAP(CMyDlg,CDialog) //消息映射开始
//{{AFX_MSG_MAP(CMyDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_MESSAGEMAP(WM_CSOCKT,Oncsockt1) //套接字消息映射项
ON_BN_CLICKED(IDC_CONNECT,OnConnect) //连接按钮的消息映射项
ON_BN_CLICKED(IDC_CLEAR,OnClear) //清除按钮的消息映射项
ON_BN_CLICKED(IDC_LIULAN,OnLiulan) //发送文件按钮的映射项
ON_BN_CLICKED(IDC_SAVE,OnSave) //接收文件按钮的消息映射项
ON_BN_CLICKED(IDC_SEND,OnSend) //发送消息按钮的消息映射项
//}}AFX_MSG_MAP
END_MESSSAGE_MAP() //结束消息映射
... //省略部分代码
在 客户端 Dlg.cpp 中 添加代码后
便为消息 WM_CSOCKT 添加相应的消息响应函数