Select 用法总结

Select在echo_server中的用法

Select原型理解:

 int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,struct timeval *timeout);

1、fd_set*readfds 是指向fd_set结构的指针,我们关心这个集合中的文件描述符是否可读,文        件描述符可读的条件:

    1、 socket接收缓冲区中的数据量大于或等于当前缓冲区的低水位线.此时对于read操作不会     被阻塞并且返回一个正值(读取的字节数).低水位线可以通过SO_RCVLOWAT选项设定,对       于Tcp和Udp来说其默认值为1.
    2、socket连接的读端被关闭,如shutdown(socket, SHUT_RD)或者close(socket).对应底层       此时会接到一个FIN包,read不会被阻塞但会返回0.代表读到socket末端.
    3、socket是一个监听socket并且有新连接等待.此时accept操作不会被阻塞.
    4、发生socket错误.此时read操作会返回SOCKET_ERROR(-1).可以通过errno来获取具体错     误信息.

2、fd_set*writefds是指向fd_set结构的指针,我们关心这个集合中的文件描述符是否可写,文        件描述符可写的条件:

    1、socket发送缓冲区中的可用缓冲大小大于或等于发送缓冲区中的低水位线并且满足以下条件之一
    (1)、socket已连接
    (2)、socket本身不要求连接,典型如Udp
    低水位线可以通过SO_SNDLOWAT选项设置.对于Tcp和Udp来说一般为2048.
    2、socket连接的写端被关闭,如shutdown(socket, SHUT_WR)或者close(socket).在一个已     经被关闭写端的句柄上写数据会得到SIGPIPE的信号(errno). 
    3、一个非阻塞的connect操作连接成功 或者 connect操作失败.
    4、发生socket错误.此时write操作会返回SOCKET_ERROR(-1).可以通过errno来获取具体错误信息.

3、timeout:

    timeout == NULL, 等待无线长时间

    timeout == 0; 不等待

    timeout > 0; 等待指定的时间

4、fd_set是通过位图来表示socket的状态,因此select可监控的文件描述符的个数取决于sizeof(fd_set) * 8的值,如下说明引用http://blog.csdn.net/lingfengtengfei/article/details/12392449中的说明

理解select模型的关键在于理解fd_set,为说明方便,取fd_set长度为1字节,fd_set中的每一bit可以对应一个文件描述符fd。则1字节长的fd_set最大可以对应8个fd。

(1)执行fd_set set;FD_ZERO(&set);则set用位表示是0000,0000。

(2)若fd=5,执行FD_SET(fd,&set);后set变为0001,0000(第5位置为1)

(3)若再加入fd=2,fd=1,则set变为0001,0011

(4)执行select(6,&set,0,0,0)阻塞等待

(5)若fd=1,fd=2上都发生可读事件,则select返回,此时set变为0000,0011。注意:没有事件发生的fd=5被清空。

转载于:https://my.oschina.net/shaguar000/blog/678640

chizhen4647
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
select语句使用大全
03-19
简要介绍了select语句的用途已经详细介绍了select的使用方法,为初学者提供借鉴
MySql数据库中Select用法小结
12-16
总之,掌握`SELECT`语句的各种用法对于有效地从MySQL数据库中获取所需数据至关重要。通过熟练运用各种条件筛选、指定筛选和分组显示,可以满足不同场景下的查询需求。不断学习和实践,能让你在数据库管理中更加...
select 简单用法
a5524338的博客
04-17 94
id,name属性在开始学时用处不大; multiple="multiple" 填在属性里时,在下拉列表中可应用于多选 size应用: (1)正常情况 size="1" (2)size="2" (3) size="3" (4) size为1时,首位显示相应的option内的内容用 selected(此属性为默认)属性...
select用法
weixin_45980070的博客
04-20 659
table表是一个数据表,假设表的行数为10行。 1:select 1 from table 增加临时列,每行的列值是写在select后的数,这条sql语句中是1 2:select count(1) from table 不管count(a)的a值如何变化,得出的值总是table表的行数 3:select sum(1) from table 计算临时列的和 select 1 from table 与Select * from table在用法上大同小异,具体不同分析见下文: 1、se
【数据库】select、from、where、group by、having、order by、limit的组合用法
阳阳的博客
11-03 1万+
select、from、where、group by、having、order by、limit组合用法 一、关键词意义 【1】select用来指定查询哪些列,可以使用聚合函数。 【2】from用来指定查询哪张表。 【3】where用来指定过滤条件,针对原表,那么条件中的列名只能是是原表的列名,不可以是别名或者使用聚合函数。 【4】group by用来对结果集进行...
SELECT 语句基本用法介绍
藜笙的博客
06-28 1万+
· DQL 数据查询语言(核心) :select(查询) · DML 数据操纵语言 :update(改) , insert(增) , delete(删) · DDL 数据定义语言 :create(创建数据表) , alter (增加数据表),drop(删除数据表) 1.DQL 数据查询语言(核心) :select(查询) · 条件查询 : where , distinct , 逻辑运算符 · 分组 :group by having · 排序 :order by ...
golang中的select关键字用法总结
09-16
下面将详细解释`select`关键字的使用方法和关键点。 1. **官方解释**: `select`语句用于选择可以立即执行的channel相关的发送或接收操作。它与`switch`相似,但其case涉及到了channel的I/O操作。当有一个或多个IO...
javascript中select下拉框的用法总结
10-23
本文将详细介绍`select`下拉框的用法,以及在实际开发中如何与后台进行数据交互。 ### 1. 获取选中的option值 当用户在下拉框中选择一个选项时,我们通常需要获取选中的`option`的值。这可以通过监听`onchange`...
Select2.js下拉框使用小结
01-19
用了这么久的Select2插件,也该写篇文章总结总结。当初感觉Select2不是特别好用,但又找不到比它更好的下拉框插件。 在我的印象里Select2有2个版本,最新版本有一些新的特性,并且更新了一下方法参数,比最初版本要...
select基本用法
涛哥的博客
04-14 6471
Select语句 注:下列所用数据库及二维表地址:https://blog.csdn.net/weixin_44134356/article/details/119959170?spm=1001.2014.3001.5501 -基础语法: select [distinct] 字段名1 as 别名,2... from 表名 [where 条件语句] | [group by 字段名1,2... ] [order by 字段1,字段2.. [desc|asc]] [limit n] -- 解释参数: []
Select语句常见使用方法整理
程驰天下的专栏
06-27 1975
一、简单查询 1.查询表中所有字段: Select * From 表名 例:查询所有用户的资料 Select * From YL_User 2.查询特定字段: Select 字段1,字段2… From 表名 例:查询YL_User中的UserName,Password信息 Select UserName,Password From YL_User 3.改变列标题
SQL学习笔记-1:Select的使用
最新发布
星辰的博客
05-05 759
其中select用大写小写都可以,不同的调取数据之间用。
数据库入门:select部分用法
Believer_YU的博客
07-14 8721
sql语言一些简单的查询操作
9.高级的Select语句的使用(重点)
qq_49451343的博客
05-15 657
1.去重查询 根据之前创建的数据库表和数据,我们提一个需求,查询所有参加了考试的学生的学号 select `studentno` from `result` --查询所有有成绩的学生的学号 根据结果,可以看出,数据有大量的重复,因此我们可以使用distinct对数据进行去重查询。 SELECT DISTINCT `studentno` from `result`; 对比两者的查询,显然这种去重的方式更加适用,重复的数据只显示一条。 2.where条件子句 作用:检索数据中符合条件的值 逻辑运算符
linux下的select用于串口接收数据时,select函数无法返回的问题
落羽的专栏
08-25 6314
写串口程序接收数据时使用了select(fd+1,&readfds,&writefds,&exceptfds,NULL); 在接收线程里使用了select函数,还有另外一个线程有close(fd);即关闭串口 在调试过程中发现close之后,select函数仍然没有返回 后来查询资料得知,在socket编程中这样使用select是没问题的(如果是非正常断开,如意外断电,拔网...
MySQL学习笔记——基础篇:SELECT语句、运算符、排序与分页
WhiteGlint666的博客
09-15 582
MySQL的最基本用法、关于SELECT语句、几种基本运算符、排序以及分页的方法,学习到此已经可以对数据库进行基本的查询操作。
基本select语句的使用
m0_54185237的博客
03-14 1万+
假使我们的列名为lie 表名为table 1.select代表选择哪些列,from代表从哪个表内选择,select * 代表选择全部列,如:select * from table; 2.选择特定的列则 select lie from table; 3.给一个列取别名有三种方法:首先可以通过空格来取别名 如:select lie L from table;其次可以通过as来起别名 如:select lie as L from table;又或者通过双引号来起别名 如:select lie "列" fro
select用法总结
流绪@微梦
03-05 2738
<select name="" id="fruits"> <option value="mangguo">芒果</option> <option value="pingguo">苹果&
select用法&原理详解(源码剖析)
热门推荐
zhougb3的博客
04-02 7万+
最近刚接触Linux下的select用法,查阅了很多资料终于懂得了一丁点,故将自己查阅后有用的资料整理在这下面。博客链接都是很有价值,写的很好的文章。在研读源码时主要看的是这篇文章:深入select多路复用内核源码加驱动实现 自己能力精力有限,没有办法自己写一篇完完整整的文章,故只能当个搬运工了,文章先后顺序尽量按照了知识点的先后~~如果有什么问题欢迎一起探讨学习~ 前期知识 在开始接触s...
写文章

热门文章

  • Select 用法总结 172
  • 开通开源中国博客的目的 148
  • url 106

最新文章

  • url
  • 开通开源中国博客的目的
2016年3篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家罗田玻璃钢花盆花器重庆玻璃钢雕塑制作厂家北京抽象玻璃钢雕塑设计新华玻璃钢雕塑费用南宁玻璃钢卡通雕塑湘潭长沙玻璃钢雕塑定制设计成都抽象玻璃钢雕塑销售电话发光玻璃钢雕塑人像玻璃钢花盆好还是水泥花盆好玻璃钢雕塑低价甩卖玻璃钢雕塑鸡像玻璃钢雕塑椅子的制作郑州花朵玻璃钢仿铜雕塑广州玻璃钢艺术雕塑玻璃钢雕塑HS编码楚雄玻璃钢花盆厂家邓州玻璃钢雕塑加工厂家江西市政工程玻璃钢花盆党建文化玻璃钢雕塑批发商场主题创意美陈台州定制玻璃钢雕塑联系方式邯郸户外玻璃钢雕塑商场电梯区域美陈玻璃钢雕塑设计欢迎来电咨询阜阳商场美陈特装安徽动物玻璃钢雕塑设计上海常见商场美陈市场报价福州公园玻璃钢雕塑价格春节商场美陈吊旗无锡商场美陈布展香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化