select 清空集合的问题

问题描述

select 清空集合的问题

这里说每次轮询调用select函数都要FD_ZERO(&fds)清空集合,否则不能检测描述符变化。为什么?

  while(1)
  {
   FD_ZERO(&fds); //每次循环都要清空集合,否则不能检测描述符变化
   FD_SET(sock,&fds); //添加描述符
   FD_SET(fp,&fds); //同上
select(....)
}

解决方案

这个是socket编程里的同步选择机制select,我上学期刚好选修一门网络课程学了一些。
在select机制中,FDZERO(会变斜体,我就不加下横杠啦~)是非常重要的。其实fds不过是一个缓冲区,用来记录哪些套接字上发生了可读/可写/异常行为。
如果不清零,那么下一次检测时,会发现可读/可写行为等仍然存于套接字上,但实际上套接字并没有收到数据或者准备好写入数据啊~
这个跟运营商流量清零是一样的道理:新的月份开始,我要重新计费。

时间: 2024-12-30 00:05:38

select 清空集合的问题的相关文章

将查询条件的input、select清空

 查询条件清空将input.select的值清空,下面有个不错的示例,需要的朋友可以了解下 将input.select清空   代码如下: var inputObjs=jQuery("#queryAdvancedDiv input[type='text']");  for(var i=0;i<inputObjs.length;i++){  var inputObj = inputObjs[i];  inputObj.value="";  }  var sele

将查询条件的input、select清空_javascript技巧

将input.select清空 复制代码 代码如下: var inputObjs=jQuery("#queryAdvancedDiv input[type='text']"); for(var i=0;i<inputObjs.length;i++){ var inputObj = inputObjs[i]; inputObj.value=""; } var selectObjs = jQuery("#queryAdvancedDiv select&q

Jquery Select操作方法集合脚本之家特别版_jquery

jQuery这个框架方便了我们对于HTML元素的操作,本来以为自己对于Select操作也算是熟悉了,但上午在测试的时候才发现自己了解的还真不多. 看了一下jQuery的一些方法后,理出了一些常用的方法,列在下面: //获取第一个option的值 $('#test option:first').val(); //最后一个option的值 $('#test option:last').val(); //获取第二个option的值 $('#test option:eq(1)').val(); //获取

javascript-easyui-tabs刷新所有tab的问题

问题描述 easyui-tabs刷新所有tab的问题 想在JavaScript实现刷新所有已经打开的tab,用了update的方法,可以刷新当前选中的tab,但是其他的tab在显示上出了问题,大小变成了0px X 16px,就是宽度变成了0,看起来就变成了竖的一条线了,代码是这样的: html: JavaScript: var allTab = $('#mt').tabs('tabs'); var selTab = $('#mt').tabs('getSelected'); var index

IO多路复用之select总结

1.基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程.IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用. (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现. (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用. (4)如果一个服务器即要处理TCP,又要处理UDP,一般要使用I/O复用. (5)如果一个服务器要处理多个服务或多个协议,一

Linux下select函数的使用

一.Select 函数详细介绍     Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect. accept.recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发 生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回).     可是使用Select就可以完成非阻塞(所谓非阻塞方式non-block,就是进程或线程执行此函数时

jQuery select操作控制方法小结_jquery

需要注意的是,这里的代码好多是针对jquery 1.32以前的版本(以后的版本已经不支持@),所以替换为空测试下即可. jQuery获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 2. var checkText=$("#select_id").find("option:selected"

一.Select 函数详细介绍【转】

转自:http://www.cnblogs.com/hjslovewcl/archive/2011/03/16/2314330.html Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect. accept.recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发 生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回). 可是使用

jQuery select操作控制方法小结

很多朋友对jquery select的操作很有兴趣,但网上的东西太多,所以脚本之家特别将Jquery Select操作方法整理下,方便大家查找. 需要注意的是,这里的代码好多是针对jquery 1.32以前的版本(以后的版本已经不支持@),所以替换为空测试下即可. jQuery获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 2.