CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  网络通信/分布式开发

如何用API函数实现阻塞非阻塞 和同步异步的 网络通讯?select函数具体作用是什么?

楼主bbtwo33(bbtwo33)2006-03-19 12:45:42 在 Delphi / 网络通信/分布式开发 提问

如何用windows   API函数实现阻塞非阻塞   和同步异步的网络通讯?   阻塞非阻塞   和同步异步如何搭配使用呢?  
   
  select函数具体作用是什么? 问题点数:50、回复次数:6Top

1 楼BlueTrees(蜗牛)回复于 2006-03-19 12:59:35 得分 0

一般用阻塞模式,阻塞模式是指调用WinSock的时候,在发送完数据前,方法不返回。这种方式可以很简单的扩展为非阻塞模式,而且很灵活,所以建议使用阻塞模式。  
   
  同步异步指的是,服务器和客户端的应答,这种应答过程是你自己定义的,和API无关。同步应答指的是,在上一个应答没有完成前不进行新的应答,异步方式就是各自说各自的,如何同步看你如何设计通信协议方式了。  
   
  有时候,我们会把API的阻塞调用称为同步调用,这迷惑了很多菜鸟。一般我们说API同步、异步方式的时候,指的是,输入输出操作的同步和异步,比如读写文件,在WinNT5下可以实现异步读写,就是读写没有完成前API函数就返回了,其实就是非阻塞模式。  
   
  select根据标准的Socket2的解释:确定一个或者多个套接字的状态,如需要则等待。  
  对于每一个套接字,我们可确定它的可读、可写及错误状态。Top

2 楼bbtwo33(bbtwo33)回复于 2006-03-19 13:02:26 得分 0

楼上的谢谢   能不能说说如何设置SOCKET套接字为阻塞模式和非阻塞模式?Top

3 楼bbtwo33(bbtwo33)回复于 2006-03-19 13:03:22 得分 0

ioctlsocket   是用这个函数么?   具体这个函数的参数都是什么   怎么用呢?Top

4 楼BlueTrees(蜗牛)回复于 2006-03-19 13:22:22 得分 50

举例说明,recv  
   
  默认的recv在windows实现中就是阻塞方式的。  
   
  要精确的控制阻塞和非阻塞,请使用WSARecv。  
   
  更多的具体的自己去看MSDNTop

5 楼bbtwo33(bbtwo33)回复于 2006-03-19 14:38:07 得分 0

那ioctlsocket   这个函数是怎么用的呢?Top

6 楼BlueTrees(蜗牛)回复于 2006-03-19 15:15:59 得分 0

用来设置socket状态  
   
  可以设置阻塞还是非阻塞,其他的我也不清楚了/。Top

相关问题

  • 关于winsock api,请教各位,在一系列winsock api函数中,默认状态下那些是阻塞函数,那些是非阻塞函数,如果阻塞用select()方法怎么使它变成
  • 问一下阻塞/非阻塞,与同步/异步的区别
  • 阻塞方式下send函数根本不阻塞,为什么???
  • FileWrite函数写文件阻塞问题
  • recvfrom函数的阻塞问题
  • 豁出去了:异步+阻塞+缓冲区过小的问题
  • 串口异步操作 GetOverlappedResult函数
  • 怎样很好的理解阻塞,非阻塞,同步,异步之间的关系及区别?
  • socket: 阻塞,非阻塞,同步,异步,我要胡涂了,谁帮我清理一下思路?
  • 关于阻塞非阻塞同步与异步的几个问题,欢迎大家讨论!!!!人人有分

关键词

  • 函数
  • 模式
  • api
  • 阻塞
  • 异步
  • 应答
  • 具体
  • 调用
  • 实现
  • 接字

得分解答快速导航

  • 帖主:bbtwo33
  • BlueTrees

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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