自定义的网络异步事件的回调函数到底怎么用?

ffww 2009-03-01 02:48:35
1、定义个网络事件
#define NETWORK_EVENT WM_USER+166 //
2、声明个异步事件回调函数
void OnNetEvent(WPARAM wParam, LPARAM lParam);
3、消息映射
ON_MESSAGE(NETWORK_EVENT,OnNetEvent)
4、编写回调函数:
void CSocketSeverDlg::OnNetEvent(WPARAM wParam, LPARAM lParam)
{
 //调用Winsock API函数,得到网络事件类型
 int iEvent = WSAGETSELECTEVENT(lParam);
 //调用Winsock API函数,得到发生此事件的客户端套接字
 SOCKET CurSock= (SOCKET)wParam;
 switch(iEvent)
 {
  case FD_ACCEPT: //客户端连接请求事件
   OnAccept(CurSock);
   break;
  case FD_CLOSE: //客户端断开事件:
   OnClose(CurSock);
   break;
  case FD_READ: //网络数据包到达事件
   OnReceive(CurSock);
   break;
  case FD_WRITE: //发送网络数据事件
   OnSend(CurSock);
   break;
  default: break;
 }
}

请问:这个回调函数什么时候才调用啊,当我从client端向srv端发送数据时,我这个回调函数根本就没有执行,它该怎么调用呢?

参考资料:
Winsock开发网络通信程序的经典入门 URL:
http://blog.csdn.net/MasterFT/archive/2007/05/15/1609981.aspx
...全文
117 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jawiudi 2009-03-01
  • 打赏
  • 举报
回复
不知道你初始化时是否注册网络事件了,就是用WSAAsyncSelect函数注册FD_ACCEPT等事件。注册后有网络事件才能进入OnNetEvent函数。如果注册了,可以在OnNetEvent开头用messagebox检测是否触发了事件。
frank529 2009-03-01
  • 打赏
  • 举报
回复
你要看程序什么时候触发NETWORK_EVENT消息

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧