socket select()函数用于定时检查以创建的socket句柄的状态,以确定设定的socket句柄当前是否可写或有数据可读。

select函数提供了一种方法,使得程序在操作socket时(如recv操作),无需因阻塞而等待直至超时。特别是在一个线程中操作多个socket时,对多个socket逐一操作直至超时将浪费大量时间。

select机制则是同时对多个socket句柄进行监控,一旦存在可操作的socket,函数及返回并通知程序。

select函数声明:

int select(

int nfds,

fd_set* readfds,

fd_set* writefds,

fd_set* exceptfds,

const struct timeval* timeout

);

fd_set是一个结构体,包含了一个SOCKET数组及一个整数用于表示数组中有效的SOCKET句柄数。

readfds参数,用于指示select函数:当其中包含的socket句柄可读时,函数返回。

writefds和exceptfds则分别表示其中包含的socket句柄可写或异常时,函数返回。

timeout是一个时间值结构,表示当前select函数执行时的超时时间,如果所有socket暂时都没有可操作事件发生,则函数将一直等待直至超时,如果timeout设置为NULL时,select()函数则一直等到包含的socket存在操作事件时才返回。

select函数的返回值是一个整数。

如果执行异常,比如,指定的socket句柄是非法的等等,函数将返回SOCKET_ERROR࿰

linux select函数返回值,socket中的select函数使用相关推荐

  1. java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?

    1.我想实现的功能是在java程序中导入HttpURLConnection类,然后将函数的值作为post方法要提交的参数,最后显示在显示台上. 2.要用到的函数是自己写的可以显示实时计算机cpu.内存 ...

  2. python sort函数返回值_python中 sort方法 和sorted函数

    sort和sorted在python中常用语列表(或类列表)的排序,但是在python中有所区别. 他们的唯一的共同点恐怕就是都可以对列表排序,区别: 1. sorted是python的内置函数,可以 ...

  3. jsp value设置为函数的返回值_python中的生成器函数是如何工作的?

    1. python中的普通函数是怎么运行的? 当一个python函数在执行时,它会在相应的python栈帧上运行,栈帧表示程序运行时函数调用栈中的某一帧.想要获得某个函数相关的栈帧,则必须在调用这个函 ...

  4. c语言函数返回值存储,C语言的函数返回值所存放的寄存器

    #include int add(int a, int b) { return a + b; } int asm_compare_one(int a) { _asm { mov edx, a cmp ...

  5. c语言函数返回值可以是字符串吗,函数返回值可以是字符串吗

    c语言中函数返回值可以是数组.字符串和结构体吗? 因为在C语言中函数不能返回数组,但字符串是存储在字符数组中的,所以能C语言中实现函数返回字符串,首先要确定函数返回的字符串地址的来源,一般分为四种方式 ...

  6. C++函数的定义、函数返回值和参数类型、函数重载、重载函数等。

    一.函数 1.何为函数? 能够执行一个功能的可复用的用大括号括起来的代码块: 2.按照函数的拥有者进行分类: 预定义函数:头文件中提供的预定义函数(内置):用户可以直接调用: 自定义函数:用户根据需要 ...

  7. go支持对函数返回值命名,可以解决函数返回值的顺序书写问题

    传统写法要求:返回值和返回值的类型对应,顺序不能差 升级写法:对函数返回值命名,里面顺序就无所谓了,顺序不用对应

  8. matlab 调用子函数返回值,matlab学习笔记13_1 函数返回值

    一起来学matlab-matlab学习笔记13函数 13_1 函数返回值 觉得有用的话,欢迎一起讨论相互学习~Follow Me 函数返回一个值 返回值不必使用return语句,而是直接将需要返回的变 ...

  9. select函数返回值_Vue学习笔记之函数、高阶函数、v-model的应用

    一.哪些函数是响应式的: 1.push 在后面追加数据 5.sort() 排序 6.reverse() 顺序翻转 abcd ----> dcba 红框中的方式修改数组中的数据时,界面没有响应式的 ...

最新文章

  1. MySQL数据库多种安装方法及企业级安装实践
  2. jsp中获取不到后台请求域中的值
  3. JMeter打开jmx文件出错CannotResolveClassException: org.apache.jmeter.protocol.ssh.sampler.SSHCommandSampler
  4. Android中SlidingDrawer开发报错You need to use a Theme.AppCompat theme (or descendant) with this activity.
  5. Linux Framebuffer驱动剖析之中的一个—软件需求
  6. ASP.NET的HTTP请求处理方法?
  7. 如何在C#中生成与PHP一样的MD5 Hash Code
  8. Java:详解List集合的排序功能
  9. 维纳滤波(Wiener Filter)
  10. 树莓派编译ch934x usb转多串口驱动
  11. 个人对于常微分方程之一阶线性非齐次方程的常数变易法的见解
  12. python 矢量场的构造、计算;通过 matplotlib 作图、分析、筛选符合要求的像素点
  13. 超级好看又易上手教你用python画樱花
  14. 音视频学习-h264的NALU结构分析
  15. 【简单实用】一台主机两个人使用,互不影响~~~
  16. pagerank简单实现
  17. 巧用“谷歌学术”,轻松完成参考文献
  18. 朋友圈便携小空调链接和源码!
  19. 非科班程序员逆袭:一个被称阿里“码神”,另一个颠覆软件生态
  20. Latex文字环绕踩坑记录

热门文章

  1. 计算机图形学三:光栅化-Rasterization
  2. DEJA_VU3D - Cesium功能集 之 026-军事标绘系列完整组件
  3. 中国人保为中环盛达环保科技集团承保产品责任险,为消费者保驾护航
  4. 在r语言中使用GAM(广义相加模型)进行电力负荷时间序列分析
  5. 66 道前端算法面试题附思路分析助你查漏补缺
  6. 【Python】逆向爬虫-----模拟微信公众平台登录(MD5)
  7. 经济学方面的电子书挺多
  8. Java雍俊海第三版7.3答案
  9. 《互联网保险业务监管办法》(征求意见稿)全文无删减
  10. java期末考试复习题_java期末考试复习题库 试题题库.doc