select函数的简单使用

server:

  socket()->bind()->listen()->FD_SET()->select()->accept()->FD_SET()->select()->read().

  1、监听制定端口,地址。

  2、将监听描述符设置到读描述符集中,用select获取是否有可读状态。

  3、当select返回监听描述符可读,用accept获取客户端描述符,并加入到读描述符集中。

  4、select监视监听描述符和客户描述符是否有可读。

  5、重复3,4步。

client:

  socket()->connect()->FD_SET()->select()->read().

  1、连接服务器。

  2、将连接描述符加入读描述符集。

  3、select获取描述符是否可读。

时间: 2024-11-06 11:26:34

select函数的简单使用的相关文章

select函数简单用法例程

在<The Linux Programming Interface>的 63.2.1 The select() System Call中讲述了 select() 函数的用法 下面是原型: 1 #include <sys/time.h> /* For portability */ 2 #include <sys/select.h> 3 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *excep

select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

http://hi.baidu.com/%B1%D5%C4%BF%B3%C9%B7%F0/blog/item/e7284ef16bcec3c70a46e05e.html select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: [cpp] view plain copy #include <sys/time.h> #include <unistd.h> int select(int maxfd,fd_set

转:select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeout); 所在的头文件为:#include <sys/time.h> 和#include <unistd.h> 先对函数中的参数做一个简单的介绍.参数maxfd是需要监视的最大的文件描述

select函数与stdio混用的不良后果 (转)

出自:http://www.cppblog.com/mysileng/archive/2013/01/15/197284.html 今天在看UNP6.5节,学习到了select与stdio混用的后果.特此进程实验一番.再实验之前需明确一下几点:1.stdio流的i/o函数 与 系统i/o函数不同.stdio流函数在用户空间和内核都有缓冲,系统i/o函数只在内核有缓冲,用户空间没有. 2.stdio流的i/o函数缓冲机制:在面对文件时候用的是全缓冲,面对设备的时候用的行缓冲.(等下试验用的是键盘和

ffplay.c函数结构简单分析(绘图)

近期重温了一下FFplay的源码. FFplay是FFmpeg项目提供的播放器演示样例.虽然FFplay不过一个简单的播放器演示样例,它的源码的量也是不少的. 之前看代码,主要是集中于某一个"点"进行研究,而没有从整体结构上进行分析.本文就打算弥补之前学习的不足,从整体结构上分析一下FFplay的源码,绘图理一下它的结构.当中还有诸多不足.以后有机会慢慢完好.说明一下自己画的结构图的规则:图中仅画出了比較重要的函数之间的调用关系. 粉红色的函数是FFmpeg编解码类库(libavcod

linux网络编程:select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET(转)

从别人的博客中转载过来了这一篇文章,经过重新编辑排版之后展现于此,做一个知识点保存与学习. select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeout); 所在的头文件为:#include <sys/time.h> 和#include <uni

WinSocket的select函数的用法(windows套接字比较研究)

总体上来说select函数的作用: 确定一个或多个套接口的状态,本函数用于确定一个或多个套接口的状态,对每一个套接口,调用者可查询它的可读性.可写性及错误状态信息,用fd_set结构来表示一组等待检查的套接口,在调用返回时,这个结构存有满足一定条件的套接口组的子集,并且select()返回满足条件的套接口的数目. 简单来说select用来填充一组可用的socket句柄,当满足下列之一条件时: 1.可以读取的sockets.当这些socket被返回时,在这些socket上执行recv/accept

Linux下select函数的使用

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

Linux中select函数

转载自:http://blog.163.com/henry_hlh/blog/static/17039507420124211841298/ Unix中的函数select和poll用来,支持Unix中I/O复用的功能,在Unix中I/O模型可以分为以一几种: (1)阻塞I/O (2)非阻塞I/O (3)I/O复用(select和poll) (4)信号驱动I/O(SIGIO) (5)异步I/O 其中,现在比较流行的I/O模型是阻塞I/O模型.阻塞I/O是当应用程序和内核交换数据时,由于内核还没有准