一个有意思的有关问题

一个有意思的问题
本帖最后由 OICLF 于 2013-05-09 15:54:40 编辑
笔者在论坛下的一个socket通信demo,分为客户端服务器两个程序。其中服务器中调用了一个windows的消息处理函数,WM_CONNECT,其目的是当有客户端连接服务器时就触发消息函数,代码中的信息表是这样写的ON_MESSAGE(WM_CONNECT,OnConnect),OnConnect是自行编写的一个函数。其编译环境是VC6.0.在6.0下能够正常运行,但是在2010里就报错,无法识别WM_CONNECT,笔者在classwizard中也确实没找到WM_CONNECT。笔者是新手,想问问各位达人,是否与新建MFC工程步骤中的添加支持winsock选项有关?还请读者不吝赐教,感激不尽。各抒己见,不必惜墨如金。
socket windows_message VC2010

------解决方案--------------------
WM_CONNECT是自定义的消息
在初始化SOCKET的时候,可以绑定消息
WSAAsyncSelect(m_Socket,this->m_hWnd, WM_CONNECT, FD_CONNECT)
//WM_CONNECT就是自定义消息的 #define WM_CONNECT WM_USER+101
当然你也不一定要叫WM_CONNECT ,可以改成其它的比如MY_CONNECT_MSG等
FD_CONNECT是要触发消息的条件,还可以是FD_READ,FD_WRITE或者他们的组合

如果绑定了,当有socket事件,自动触发消息