CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

WSAAnyncSelect模型客户端的问题

楼主huzzyy(压路机)2005-08-03 23:06:53 在 VC/MFC / 网络编程 提问

我用WSAAnyncSelect模型做了个客户端:  
  void   CclientDlg::OnBnClickedBtnConnect()  
  {.....  
    connect(ConnectSocket,   (SOCKADDR   *)   &ServerAddr,   sizeof(ServerAddr));  
    WSAAsyncSelect(ConnectSocket,m_hWnd,WM_SOCKET,FD_READ|FD_WRITE|FD_CLOSE|FD_CONNECT);  
  }  
  LRESULT   CclientDlg::WindowProc(UINT   message,   WPARAM   wParam,   LPARAM   lParam)  
  {switch(message)  
    {  
      case   WM_SOCKET:  
  if(WSAGETSELECTERROR(lParam))  
  {  
      closesocket((SOCKET)wParam);  
  }  
  switch(WSAGETSELECTEVENT(lParam))  
  {  
  case   FD_READ:  
                          ....  
                          break;  
                    case   FD_CONNECT:  
                          ....  
                          break;  
                    case   FD_WRITE:  
                          ....  
                          break;  
                    case   FD_CLOSE:  
                          ....  
                          break;  
  }  
      }  
      return   CDialog::WindowProc(message,   wParam,   lParam);  
  }  
  为什么我每次点击“连接”按钮后,窗口过程都会收到WM_SOCKET消息,并触发FD_WRITE,而不是FD_CONNECT????? 问题点数:20、回复次数:2Top

1 楼softrain(曾经的月光,现在的日光)回复于 2005-08-04 09:42:33 得分 10

当连接成功的时候是会先后收到FD_CONNECT和FD_WRITE,MSDN上说的很明白了。  
  对于TCP,我是不从来不管FD_WRITE消息的,只管FD_READ就够了,建议你不要管FD_WRITE消息。Top

2 楼softrain(曾经的月光,现在的日光)回复于 2005-08-04 09:46:55 得分 10

另外你的处理还是有点问题,如果出现网络错误关闭套接字就不应该再往下执行。  
  另外你创建套接字是否选择了FD_CONNECT事件?如果选择了而没有收到,应该是连接失败了。Top

相关问题

  • 开发winsock客户端一般用什么socket模型
  • select模型 服务器端如何检测客户端socket是否关闭?
  • 哪位知道OICQ客户端、服务器端用的是哪种socket I/O模型?
  • 【求助】在完成端口IOCP模型下如何知道客户端已关闭连接(掉线)?
  • 关于完成端口模型怎样检测客户端意外断线的问题
  • 谁有使用WSAAsyncSelect模型的客户端主机端例子程序啊?发给我一个吧
  • iocp模型,客户端closesocket或者直接退出,服务器总是得到ERROR_NETNAME_DELETED 错误!!!
  • 采用客户端主动关闭的client-server模型,如何防止恶意的client connect!
  • 大家TCP服务器都用什么线程模型啊,能处理多少客户端啊?
  • windows 2000 , winsock 重叠模型的 客户端 , 连接问题 , 如何控制 connect 超时

关键词

  • 连接
  • 消息
  • socket
  • fd
  • lparam
  • wparam
  • 收到
  • connect
  • wm
  • write

得分解答快速导航

  • 帖主:huzzyy
  • softrain
  • softrain

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo