一个有关CAsyncSocket通讯的疑问

herofour444 2004-06-21 09:23:14
比如说这一段
void MySock::OnReceive(int nErrorCode)
 {
  m_nLength=Receive(m_szBuffer,sizeof(m_szBuffer),0);
  //下面两行代码用来获取对话框指针
  CCSockClientApp* pApp=(CCSockClientApp*)AfxGetApp();
  CCSockClientDlg* pDlg=(CCSockClientDlg*)pApp- >m_pMainWnd;
  pDlg- >m_MSGS.InsertString(0,m_szBuffer);
  memset(m_szBuffer,0,sizeof(m_szBuffer));
  CAsyncSocket::OnReceive(nErrorCode);
 }
系统是如何触发的,
应该是只要接到东西就发送消息,触发CAsyncSocket::OnReceive事件是不是,
可是何时执行MySock的OnReceive函数呀
...全文
101 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sander 2004-06-22
  • 打赏
  • 举报
回复
是的。最后是用户的OnRecieve call MFC OnRecieve(),是因为有些default的operation
在MFC 的OnRecieve()中做。
danielzhu 2004-06-21
  • 打赏
  • 举报
回复
去这里下载这个例子程序:很好用哦
http://support.microsoft.com/default.aspx?scid=kb;en-us;214396
danielzhu 2004-06-21
  • 打赏
  • 举报
回复
给我E_mail,我给你发一个例子程序!挺好的
ccxian123 2004-06-21
  • 打赏
  • 举报
回复
设定FD_READ时Receive啊,而Receive后就自然会触发OnReceive事件了,具体发什么样的消息参考下MSDN啊!
herofour444 2004-06-21
  • 打赏
  • 举报
回复
我怎么看不到我的问题
herofour444 2004-06-21
  • 打赏
  • 举报
回复
还有为何在最后再触发CAsyncSocket::OnReceive(nErrorCode);
事件
herofour444 2004-06-21
  • 打赏
  • 举报
回复
呵呵,看不太懂
是不是这么个意思
系统中断,发送消息触发mfc onrecieve,而他是个虚拟函数,实际上调用用户的recieve
Sander 2004-06-21
  • 打赏
  • 举报
回复
实际上流程:
User set Flag(interrupt)->Driver->CallBack MFC OnRecieve() function.
because MFC OnRecieve is virtual ,so CallBack call User Onrecieve() function.
because some is default code(MFC OnRecieve() implement), so User Onrecieve()
call base class functuon MFC OnRecieve.
herofour444 2004-06-21
  • 打赏
  • 举报
回复
没明白我的意思,我并不是想要例子,
只是想知道他具体的流程

18,356

社区成员

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

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