CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

为什么把 Connect 放在 WSAEventSelect 语句的后面就会出现 10035 错误!!

楼主summax(夏天的冰)2005-01-02 21:07:25 在 VC/MFC / 网络编程 提问

而放在WSAEventSelect   的前面就不会!!! 问题点数:50、回复次数:17Top

1 楼kingzai(stevenzhu)回复于 2005-01-02 21:21:58 得分 10

10035   即WSAEWOULDBLOCK   The   socket   is   marked   as   nonblocking   and   the   requested   operation   would   block    
   
  放在前面是同步和阻塞模式,不会产生这个错误  
  当放在后面,是异步模式,你去getlasterror当然会得到这个错误。Top

2 楼summax(夏天的冰)回复于 2005-01-02 21:32:08 得分 0

不是啊.我放在后面是设用   Connect   时.返回   SOCKET_ERROR   啊!!但是我发现其实已经连接成功!!Top

3 楼kingzai(stevenzhu)回复于 2005-01-02 21:35:29 得分 10

connect是阻塞的,WSAEventSelect   放前面会设置成异步,差别就在这里。10035   你是从哪得到的?Top

4 楼summax(夏天的冰)回复于 2005-01-02 21:37:51 得分 0

我是用   Connect   等于   SOCKET_ERROR   后   调用   WSAGetLastError   得到的.Top

5 楼summax(夏天的冰)回复于 2005-01-02 21:43:12 得分 0

1.建立Socket套接字  
  2.绑定套接字到指定IP  
  3.调用WSAEventSelect   将套接字设置为事件对象模型  
  4.调用Connect连接服务器时返回SOCKET_ERROR   错误,调用WSAGetLastError   得到   10035  
   
  但是把   3   4   条位置对调就没事。  
  如查   3,4对调服务器断开连接到客户端能得到事件通知。而客户端断开连接后服务端却不能得到事件通知。  
  如果不对调连接服务器成功,只是调用WSAGetLastError   会得到   10035错误,但是客户和服务双方断开连接,双方都能收到事件通知!!Top

6 楼summax(夏天的冰)回复于 2005-01-02 21:45:38 得分 0

我想应该是Connect阻塞的原因。那我用什么函数过连接服务器呢?Top

7 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-01-02 22:11:46 得分 10

报告WSAEWOULDBLOCK是正常的,因为建立一个连接必须花费一些时间Top

8 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-01-02 22:12:46 得分 0

非阻塞上不能立即完成时会产生这个错误,需要时间等待Top

9 楼summax(夏天的冰)回复于 2005-01-02 22:20:07 得分 0

需要多长时间??我已经等了   1分钟了。服务端可是在本地!Top

10 楼nuaawenlin(飘人)回复于 2005-01-03 21:45:32 得分 10

WSAEventSelect之后,socket变成了异步,是不杜塞的,你connect马上返回,而这个时候还没有联上服务器而着成WSAEWOULDBLOCKTop

11 楼summax(夏天的冰)回复于 2005-01-04 09:11:29 得分 0

那我如何判断我连上服务器没有了呢?Top

12 楼anyiflyer(代码在我心中!)回复于 2005-01-04 12:18:46 得分 10

返回   10035表示没有问题了,已经连接上服务器了,因为默认情况下是阻塞的,WSAEventSelect(WSAsyncSlect)之后,socket变成了异步,所以才返回这个错误,当然是在连接成功的情况下!这可以当作一个警告错误而不用处理,甚至可以根据返回值是不是10035来判断是否连接成功了.Top

13 楼leaber(鹤舞白沙)回复于 2005-01-04 13:30:52 得分 0

顶一下Top

14 楼summax(夏天的冰)回复于 2005-01-04 13:34:50 得分 0

to:   anyiflyer(燕子飞了,我爱谁?)    
      可是我没有打开服务端.而用客户端连接.也返回的是10035错误.也就是说.连没连上客户端没法判断了.还有如果我关闭了客户端的Socket套接字.而服务端却没有收到客户端套接字关闭的事件通知.Top

15 楼sharkhuang(走吧走吧!人总会慢慢长大~)回复于 2005-01-04 15:26:58 得分 0

connect是阻塞模式Top

16 楼summax(夏天的冰)回复于 2005-01-06 12:14:38 得分 0

ding...Top

17 楼AntonlioX(做人要厚道)回复于 2005-07-02 02:38:07 得分 0

markTop

相关问题

  • INSERT INTO 语句错误?
  • SQL语句错误
  • sql语句错误!
  • sql 语句错误!
  • sql语句错误~~问题
  • SQL语句提示错误。
  • sql 语句出现错误!
  • 检测语句错误
  • SQL 语句出了错误!!!!!!!!!!!!!!
  • 请教:UPDATE语句错误

关键词

  • 连接
  • 服务器
  • 客户
  • socket
  • wsaeventselect
  • 错误
  • 调用
  • 异步
  • 放在
  • 客户端

得分解答快速导航

  • 帖主:summax
  • kingzai
  • kingzai
  • oyljerry
  • nuaawenlin
  • anyiflyer

相关链接

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

广告也精彩

反馈

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