引自《网络编程》第一版
s e l e c t函数,我们判断套接字上是否存在数据,或者能否向一个套接字写入数据。之所以要设计这个函数,唯一的目的便是防止应用程序在套接字处于锁定模式中时,在一次I / O绑定调用(如s e n d或r e c v)过程中,被迫进入“锁定”状态--------------
???SEND 和RECV 怎么样的情况下才会被迫进入锁定?(锁定模式)
那SELECT 是放在SEND和RECV前呢还是放在它们之后
还有SELECT的三个返回值-1错 0 和 1 各有什么用???
不明白怎么把SELECT和SEND 、RECV 一起用。
s e l e c t函数,我们判断套接字上是否存在数据,或者能否向一个套接字写入数据。之所以要设计这个函数,唯一的目的便是防止应用程序在套接字处于锁定模式中时,在一次I / O绑定调用(如s e n d或r e c v)过程中,被迫进入“锁定”状态--------------
???SEND 和RECV 怎么样的情况下才会被迫进入锁定?(锁定模式)
那SELECT 是放在SEND和RECV前呢还是放在它们之后
还有SELECT的三个返回值-1错 0 和 1 各有什么用???
不明白怎么把SELECT和SEND 、RECV 一起用。
解决方案 »
- 大量文件网络传输的问题
- ie下网页内嵌的cab控件自动安装的ActiveX控件,如何卸载?
- 简单问题:关于编辑框获得焦点的问题
- 毕业设计求救!!!“.exe遇到问题需要关闭”
- 大家有好的做VC界面的工具不?谢谢!
- 新手求救:一个简单的 全局变量位置 的问题?请指教
- 在线等待送分!!!如何将某个图象资源ID中的某个区域范围的图象,放置到一个新的HBITMAP变量中
- ??如何用vc取得一个http地址的请求的内容?急需!!!
- """"""""""""""""""""怎样创建*.BIN文件? 谢谢!!""""""""""""""""
- 为何cedit文本输入框无法输入中文
- 和单片机的串口通信中,我写的上位机程序,每读串口都要先等2秒,才能读到正解数据,请各位帮着分析一下为什么?
- 分享QQ群大家交流分享之地~~大家UP吧
如果我的网络有问题不能SEND数据出去不过SEND还在LOCK状态还在试
这时我用SELECT去调这个套接字就可以有结果然后或关或再等数据发出是吗?
SOCKET s;
fd_set fdread;
FD_ZERO(&fdread);
FD_SET(s,&fdread);
select(0,&fdread,NULL);
///////////////上面一句就是判断处于fdread中的套接字是否拥有接收数据的资格,这样一来,只有select返回正确值(非SOCKET_ERROR),在select后面的语句才具得接收数据的功能(这样保证不会锁死)
是不是建一个LISTEN的SOCKET,一个RECV,再建一个SEND的比较好?
谁能帮我讲讲
如果在一个堵塞的套接字send()或者recv()之前加一个select(),设置超时,是不是就相当于非堵塞了
但是一般用IOCtrl设置socket为非阻塞模式
#define IsDrop(iError) ( iError==WSAENETRESET \
|| iError==WSAECONNABORTED \
|| iError==WSAECONNRESET \ || iError==WSAEINVAL )
以上定义的基本上都要关闭