社区
网络编程
帖子详情
请高手给我讲解一下socket中select到底是怎么回事,需要注意和设置什么?
waterbao
2006-03-30 09:40:08
请高手给我讲解一下socket中select到底是怎么回事,需要注意和设置什么?
...全文
233
5
打赏
收藏
请高手给我讲解一下socket中select到底是怎么回事,需要注意和设置什么?
请高手给我讲解一下socket中select到底是怎么回事,需要注意和设置什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yinqing_yx
2006-04-06
打赏
举报
回复
我的笔记 共享 ^_^
~~select~~
int selete ( int nfds, fd_set FAR * readfds, fd_set FAR * writefds, fd_set FAR * exceptfds,const struct timeval FAR * timeout );
param:
第一个参数nfds会被忽略,提供此参数只是为了保持兼容。
从根本上说,fd_set数据类型代表着一系列特定套接字的集合。
readfds: 检查可读性(包括对象套接字的符合条件:)
▲ 有数据可以读入
▲ 连接已经关闭、重设或中止
▲ 假如已调用了listen,而且一个连接正在建立,那么accept函数调用会成功
writefds: 检查可写性(包括对象套接字的符合条件:)
▲ 有数据可以发出
▲ 如果已完成了对一个非锁定连接调用的处理,连接就会成功
exceptfds: 用于例外数据(包括对象套接字的符合条件:)
▲ 如果已完成了对一个非锁定连接调用的处理,连接尝试就会失败
▲ 有带外(OOB)数据可供读取
timeout: 用于决定selete最多等待I/O操作完成多久的时间。如为空指针,那么其调用会无限期地“锁定”或停顿下去,直到至少有一个描述符号符合指定的条件后结束。
对fd_set进行处理与检查的宏:
▲ FD_CLR (s, *set) 从set中删除套接字s
▲ FD_ISSET ( s, *set) 检查s是不是set的成员
▲ FD_SET ( s, *set) 将套接字s加入集合set
▲ FD_ZERO ( s, *set) 将set初始化成空集合
selete操作步骤:
▲ 使用ZERO,初始化自己感兴趣的每个集合
▲ 使用SET,将套接字句柄分配给自己感兴趣的每个集合
▲ 调用selete方法
▲ 根据slelete返回值,判断哪写套接字存在着尚未完成的I/O操作(使用ISSET)。
▲ 知道了每个集合中的“待决”的I/O操作后,对I/O进行处理后返回步骤1。
danscort2000
2006-04-06
打赏
举报
回复
select最初来自BSD SOCKET
在UNIX系统中,判断一组套接字中是否有可读或者可写的套接字
使用SELECT可以让一个线程对应处理多个套接字
在WINDOWS系统中,则一次只能对应一个套接字,经常被用来测试处套接字是否已经被关闭或者连接被中断
oyljerry
2006-03-30
打赏
举报
回复
select()
简述:
确定一个或多个套接口的状态,如需要则等待。
#include <winsock.h>
int PASCAL FAR select( int nfds, fd_set FAR* readfds, fd_set FAR* writefds, fd_set FAR* exceptfds, const struct timeval FAR* timeout);
nfds:本参数忽略,仅起到兼容作用。
readfds:(可选)指针,指向一组等待可读性检查的套接口。
writefds:(可选)指针,指向一组等待可写性检查的套接口。
exceptfds:(可选)指针,指向一组等待错误检查的套接口。
timeout:select()最多等待时间,对阻塞操作则为NULL。
waterbao
2006-03-30
打赏
举报
回复
UP
zblaoshu1979
2006-03-30
打赏
举报
回复
学习
国央企创新负责人如何通过产业大脑实现产业链协同与能力对接?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
源码:数字电源STM32G474-PFC-DCtoAC逆变器程序源码.rar
尖叫的变压器,数字电源
Creo 机床数据库完整程序文件直下入口.rar
Creo 机床数据库完整程序文件直下入口.rar
易语言源码易语言服务器组手机控制原码
易语言源码易语言服务器组手机控制原码
高校技术转移办公室人员如何借助产业大脑推动科技成果落地?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
网络编程
18,356
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章