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
#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
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货