利用MFC创建基于UDP的聊天通信工具很简单,程序是基于MFC的对话框实现的。程序界面如下面所示:
1 概述
要添加的内容主要主要是发送端和接受端程序,以及最开始对话框程序初始化的时候对套接字的初始化。以及自定义消息WM_RECVDATA
2 接受线程
其次要注意的是因为接受函数recvfrom是一个阻塞函数,所以要开辟一个线程来专门接受消息。并且要把socket以及窗口句柄hwnd传递给线程的启动函数。
主要代码如下所示:
BOOLCmfcChatDlg::OnInitDialog()
{
//…..省略以上代码
// TODO: 在此添加额外的初始化代码
((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1) )->SetAddress(127,0,0,1);
InitSocket();
RECVPARAM *pRecvParam = new RECVPARAM;
pRecvParam->socket = m_socket;
pRecvParam->hwnd = m_hWnd;
HANDLE hThread =CreateThread(NULL,0,RecvProc,(LPVOID)pRecvParam,0,NULL);
returnTRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
// 创建并且初