如何用API函数实现阻塞非阻塞 和同步异步的 网络通讯?select函数具体作用是什么?
如何用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: 阻塞,非阻塞,同步,异步,我要胡涂了,谁帮我清理一下思路?
- 关于阻塞非阻塞同步与异步的几个问题,欢迎大家讨论!!!!人人有分




